In Nassau there are some snorkel excursions that will be offered. I have snorkelled at Cable Beach but wasn't overly impressed. On St Thomas there is decent "walk in " snorkelling right off the beach at Coki Beach and Saphire Beach. Both have full facilities and are short cab ride from the pier.Can't help with Puerto Rico.
If you are going soon you will not be stopping at Labadee. This private island is off the coast of Haiti, and is closed until political situation in Haiti, calms down. Some cruises will be substituting Grand Bahama Island and others, CoCo Cay, RCCL's other private island.
When you are at St. Thomas get a boat to Trunk Bay at St. Johns. It's some of the best snorkling in the world! I've been to a lot of places and this was definitely some of the best. DON'T go in Nassau... it's terrible! San Juan isn't the best either. Don't know about the other one. Have a great time!