I personally love St Thomas and turtle cove and honeymoon beach. Both have great snorkeling but are only reachable by boat. We just came back from Southern Caribbean and went with Captain Nautica's Power snorkeling. They take you to turtle cove and you get to snorkel with the turtles and rays and fish for about 45 minutes and then they take you to honeymoon beach with is in the Marine National Park. AWESOME trip and awesome beach there. Highly recommend this island for snorkeling. The reef at honeymoon beach gives you many new fish and the beach is fine white sand. This trip was booked through the cruise line. Enjoy!
I just came back from the Eastern Caribbean which included all three of the places you mention. However, I only snorkeled on St. John's Island. St. John can be visited via a shuttle ferry that can take you there. If you leave from Red Hook, it takes about 20 minutes to get there. If you leave from St. Thomas' Charlotte Amalie, it takes about 35 minutes. I snorkeled at Trunk Bay. It was very beautiful and has a snorkel trail which you can follow. There are large rocks on the bottom that tell you what the coral types are etc. However, I found it to be sparsley populated by fish. That could be because there were about 100 snorkelers in the water the same time as me. A friend of mine suggests Cinnamon Bay which is right next to Trunk Bay. He says it is much better there. In any case, St. John's Island is 85% National Park. It is very scenic. I think you would like it.
On the other hand, if you want to stay on St. Thomas, I heard that Cokie Beach has some snorkeling available. Someone else was recommending Saphire Beach. So, I don't really know from experience which to visit on St. Thomas. Good luck and have a good time.
Hmm, I was thinking that Honeymoon beach was on St John, but maybe I'm recalling it incorrectly. On St. Thomas, my favorite snorkeling spots are Secret Harbor (to the right hand side where the rocks are), Sapphire (great views of St. John), and Coki (lots of fish to the right near Coral World, good coral on the left, but a long swim to it). As mentioned above, it's hard to go wrong with snorkeling on St. John. There are many excellent locations there.
We just returned from an Eastern cruise. We snorkeled at Cinnamon Bay Beach on St. John - basically next to Trunk Bay - good snorkeling saw lots of fish, coral, even saw a stingray or two. Cinnamon Bay isn't as fancy as Trunk ( its a campground) its less crowded. Has clean facilites and a little restaurant, still beautiful.