We've done loads of different things over the years, and our touchy/spirited dd still has issues with it. We swap and change about each night. I ALWAYS do dd's hair first though, so the yucky bit is out of the way and she can play happily afterwards. Things we have done - 'what's that up there on the ceiling/curtain' etc, to get her to look up while we rinse. How far down her back can she get her hair if she tips her head back and tickle the spot it gets to, can she get it further etc - all whilst rinsing her hair. Counting my eyelashes. Standing above her and making faces, so she's looking right up as we do it. Closing her eyes and getting her to hold the flannel over them really tightly - count how long she can do it for. Someimes she likes just lying in the bath, (it's shallow enough for her to be able to do this) and that gets most of it out to make the job easier. Sometimes though, it's had to be just do it as quickly as possible.
HTH