On the eastern, I like Dawn Beach on St. Maarten for snorkeling. The only drawback with it is that the surf is sometimes up, which makes it a bit more work. When it's calm, it's the best snorkeling on the island, I think. If there's a storm out in the Atlantic somewhere, it might be rough at Dawn Beach, since it's on the Atlantic side of the island. I also like Little Bay beach, which is just on the other side of Great Bay, where the ship docks. Either beach is an easy taxi ride from the cruise ship pier.
On St. Thomas, I like either Coki Beach or Sapphire beach for snorkeling, and on St. John, either Trunk or Cinnamon Bay. Trunk Bay gets all the press, but I prefer Cinnamon, since it's usually less crowded, especially if there are 4 or 5 ships in port that day. You can take cabs to any or all of these, but going to the St. John beaches is a bit trickier, since you have to take a cab to Red Hook, take the ferry over to Cruz Bay, and then grab another cab to the beach. If you go to St. John, try to be among the first off the ship, so you can get to Red Hook in time to catch the 9:00 AM ferry.
On the Western, we usually take the Fury Catamaran excursion if we snorkle at Key West. They take you out to a reef about 7 miles out to sea for some pretty good snorkeling. On Grand Cayman, I like 7 mile beach, which is pretty quick and easy via a cab. I've never gone snorkeling at Cozumel, so can't suggest anything there.