Because those are boring, childish and one dimensional.
Only if they're done in a tasteless, crappy and vanilla kind of way.
Anti-hero characters have been done to death. How often have you seen a good AAA game where you're a pure good guy in recent times? Even pure evil guy (which is even less and almost non-existant).
Seriously how else can you portray a character that is pure good? Of course it will be boring, childish and one dimensional.
Entertainment doesn't mean it can't be realistic.
Now that you guys brought up the Joker, It made me think about how hard the new movies try to be more dark, and "realistic."
They ended up what? Boring and seriously overrated because of a death of an actor.
Take the dark knight for an example. Remove the "hero" aspect of it for a bit inside your head, hell maybe watch it like that. What do you get? A boring action flick that was done a hundred times over.
This is what happens when a director thinks that comic book material needs to be super serious. Tim Burton did it better because it didnt try too hard to be more than what it should be. People loved the dark knight though.