Actually, it sounds just fine the way it is. The word "hate" is a passionate word. If you change it to "despise" or "loathe"...you are investing somethign more than hate, i think. Somethign worse than hate, actually. You have the original hate, then you pour on a level of disgust and disrespect, etc.
Also, this is for kids, and kids know exactly what hate means. And they know what it means in regards to dragons and elves and wizards and villains, etc. I don't know the story this excerpt is from...but it sounds almost "comedic", in that some creature or thing called a "Snarl" hates to be clean, otherwise why would you hate a barber or soap and water, and all these things that could potentially "clean you up."
Within that context, i think hate works really well. It's like saying cats hate water. Who would argue with that?