It does seem to be a rendering issue.
With background-color:#f0f0f0 calibre viewer, ADE and Firefox all display the same shade of grey but Kindle PW and Previewer show white. Dropping down to #e8e8e8 shows on all these devices, although it is a lighter shade of grey with Kindle rendering than on the others. So I can either compromise on #e8e8e8 or do some more thorough testing and see how various shades of grey vary on Kindle.
Using Kindlegen gave the same results as calibre.
(I wonder if ePub readers from different manufacturers also render colours differently.)