I went on the Buck Island sail/snorkel while on a Carnival cruise and I didn't care for it. The staff members weren't very professional/helpful (they were drinking the rum punch along with the guests).
We could hardly see the ship wreck they talked about, and people arn't allowed to swim up to the beach (it's a natural preserve)
Plus on out islands like that, the water can get really choppy.
Personally, I'd go to St. John if I were to go snorkeling while in St. Thomas.
PS we went last August...It might be better now, or have a different tour operator.
I've done it, but thought that the snorkelling other beaches of St. Thomas over snorkelling that is just as good (Secret Harbor, Sapphire, Coki), and then there's good snorkelling on St. John from the beach. In a nutshell, in the US Virgins, you don't need to take a boat excursion to get good snorkelling, you can do it right from the beaches.
ask to be put on the island girl , the owners were great had the boat to our 6 , friends on one yacht, it was great, just ask the man who puts everyone together, we had a party of 6 to start so it was great , just get to him first.
reina and mike