I've noticed this too.
I think it has something to do with the way the browser is rendering images as opposed to rendering flat HTML marked up colours.
One simple solution is to use a very small image (even a 1x1 pic with the relevant colur in it) as a background rather than a marked up...