1. St. John (1/2 hour from St. Thomas - very easy): Cinnamon Bay, Trunk Bay, Hawksnest, Waterlemon) or on St. John, Sapphire Beach. All specatcular.
2. St. Lucia: Anse Chastenet resort (long taxi ride from the ship but worth it)
3. Barbados: Go to Folkestone Marine Park but when you get there, walk around the rocky point to the right as you face the water, you'll come to a beautiful resort/beach (beach open to the public but I've forgotten the name) - same reef to snorkel over (beautiful if the weather has been relatively calm and the water isn't strirred up) and a MUCH nicer beach than the "park" which is dirty, has no sand and very aggressive vendors.
We always go to Orient on St. Martin where is scenery is much more interesting above the water than below (!) but I've heard Dawn Beach has reasonably good snorkeling.
Have been to Antigua but the beach we went to (Hawksbill?) had no snorkeling.
You may want to check the "Ports of Call" section of the forum at Cruise Critic for more info.
(we'll be in some of those plales again with mask, fins and snokels next April off the AOS. Can't wait!!!!! )