I think the problem comes from evaluating each man by his own standard.
Avon is frequently better than the standards he claims to hold; he is
selfish, but, proving he does not need his friends in a practical way,
he still risks himself to help them, for instance.
Blake has different standards, better in most people's eyes. Everyone
who likes Avon is aware of this. Blake is an idealist. That makes his
point of view more popular, his standards closer to the ones of
mainstream society today. And yet the holding of several strong moral
standards means at times one need will oppose the other. Can you fight
for freedom and yet not give those directly opposing you a free choice
without being a hypocrite to some degree?
When Avon laughs at Vila as an "intelligent flea", he's being Avon. Love
him or strangle him, he is what we expect and sometimes loathe. When
Blake does it, he isn't being the Blake we want to see. A real hero has
to be heroic whenever he is in our view. An antihero can be heroic once
a season and be appealling, because rather than letting us down, he's
boosting us up.
In short, we have lower expectations of Avon because he's told us what
to expect from him. If Blake claims moral high ground, he has to act in
a way to back that claim.