When I clean areas of the vinyl outer skin of my Royalex boat to prep it for filling grooves and gouges, I use 99% isopropyl alcohol and a rag. Takes elbow grease, but it works well for making the surface really clean to be able to take the filler compound. I cannot say how well it works on stains in a broad area of hull (which would one heck of alot of rubbing), but I do note that it cleans the spots I am working on quite well. Non toxic, and no harm to the hull.
Acetone has always been written about as the cleaner to use to prep for gluing anchors and D rings. I have never used acetone because of its toxicity, absorbs through skin, and risk of damage to hull if not fully evaporated before gluing. Use at own risk, and be outside to minimize breathing vapors, and rubber gloves would be wise also.