OXYLIC ACID
Anything that is abrasive is removing gelcoat, which is a thin layer of resin over the fiberglass cloth. Oxylic acid chemically removes most stains without abrading the gelcoat. It is including in some boat cleaners, but Boat/US sells the dry powder for about $8-10( I can't remember the name, but it is the cleaner isle, in a cylinder about 10 inches tall and about 3 inches in diameter). Just wet the powder with water(fresh or salt) and let it sit 10-15 minutes, keeping it moist. then rinse off, soap helps get rid of the residue. It is recommended by Practical Sailor, who commented that the faster a cleaner works, the faster it is removing your gelcoat. For tough stains, sanding the stain out may be the solution, but you only have a certain amount of gelcoat before you have to turn to Awlgrip epoxy/paint.