I agree it's not a trap, but here's what I noticed while playing - crystals really do come from quests and events, you just have to understand that battle passes and events are the main income, while routine activities give very little. I usually saved up for characters I actually liked, and it took me about a couple months to gather enough for one full pull.
The key is not trying to pull on every banner. If you pick one or two heroes per season and don't spread yourself thin, it's totally realistic to get someone new without spending money - you'll just have to wait longer. The marketing trap is more when you WANT everyone at once, that's when it starts feeling like you'll never have enough crystals.