Jon and I have taken a couple of cruises and snorkeled. The best experience was probably Belize, but it wasn't as long an outing as we hoped it would be (Lots of time in transit). If we go again we're going to ask if you can book both the morning and afternoon excursions and possibly stay on the mini-island they built on the reef in between. We had a guided tour and then snorkeled more on our own. It isn't very deep, but it was awesome.
On Cozumel, we took our own snorkel gear and took a taxi to the state park (20 mins). They have a lovely beach with umbrellas that you can swim/snorkel right off of. We stayed for hours. Not a reef environment, and perhaps some too carefully placed artifacts like cannons and statues, but the fish were awesome.
Due to bad weather, we didn't get to go snorkeling as planned on Grand Cayman, but have heard of lots of folks who have and loved it. Catch a taxi to cemetary reef. You literally walk through a cemetary to the beach. Go with a group. Ask the taxi to pick you up at a specific time. Again, bring your own gear.
As excursions can be pretty expensive, going on your own can be affordable, but also a much longer outing.
Bring underwater disposable cameras with you as they are expensive on board.
Have a great time, it is a fanatastic experience.
Maureen