AV is right; your daughter is possibly just washing the layer of her hair that's on top and not scrubbing down to her scalp and getting shampoo and enough water down there. Oil (which does trap and retain odors in hair!) is probably in the layers between her scalp and the top layer of hair and she's not getting to it thoroughly.
I would get her a very wide-toothed plastic comb and have her use that when washing -- she lathers (makes sure she's really lathering up and not just seeing a bubble or two and then she's done) and then she uses the comb to scrub around, lift up the hair etc. I agree, every other day should be fine. But you may need to supervise a bit more than she, at 10, will really like.
The good smell you are detecting as she comes out of the shower is just the shampoo smell on the upper layer of her hair.
Also, she may need to dry her hair most of the time. Does she shower and then go to bed with wet hair? The "musty" smell sounds like it's a wetness thing, added to the oiliness, so I'd allot time for drying before bed. Again, she may balk at this as a nuisance, it takes too long, it's too hot, I don't like doing it, etc. If she likes to read, tell her to read while she dries it. But you'll want to check afterward and make sure she dried it all the way down to the scalp. If she has heavy or thick hair she is likelier to retain oils, have wet patches even after drying etc.
You could also jump-start oil removal with vinegar. I heat white vinegar (cider vinegar is OK too) in the microwave and then add very warm water -- the mix is up to you. Massage it really well into the hair down to the scalp and leave on a few minutes then wash the hair very well. After a couple of times you'll see how the vinegar cuts oil. Do it on a weekend so any leftover vinegar smell is gone by the time she gets to school.