@Robin807 Pretty hard to tell, but I'd say dye. If it was just shampoo residue, it doesn't seem like it would be in streaks like that, nor have such an intense color, it would just have sort of discolored the whole towel.
That's what my towels used to look like when I dyed my hair. I'd put the dye in, and wrap my hair in a towel (a threadbare brown one) for the 30 minutes I had to leave it in.
It's perfectly acceptable to ask a guest what they might have used that stained something, rather than it be a mystery. If you don't make it sound like you're mad, or going to ask for compensation, they are likely to be forthcoming.
"Hi XX. Hope you enjoyed your stay, thanks for booking with me.
Mystery question- there is something purple all over 3 of the white bath towels- it'll most likely come out in the wash with the right pre-treating, but I need to know what it is, so I use the correct laundry product. Can you enlighten me? Thanks a lot."
While most stains are removable, one thing I have read that stains irretrievably is acne medication. Apparently leaves pinkish or yellowish stains that nothing will remove.