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.