I just put a decorators plastic drop sheet over the engine and close the bonnet (using the clips to hold it in place). Works well enough...with the engine cold of course!
That's what I do
I've never washed the bonnet without covering the engine as when I first got the car a couple of years ago there was heavy corrosion on the spark plugs which made me think that it had been washed without care in the past