I'm with most here. Book off ship, do research before you leave and look for reputable people. I on one hand wouldnt want to walk off the ship in say the CAymans without a plan, because you just dont know what your going to get.
We did a bit of research and another couple and us took Capt marvins and had, i know, a much better time then the carnival people did and saved around 100.00 per person too. that being said, Marvins never missed a boat
On the other hand, in Progresso, we wanted to do the mayan ruins, we booked thru the ship, why? because its a 4 hour round trip drive and we didnt want a problem like missing the boat lol. If we had done a shorter mayan adventure (we went to the big daddy ruins) we most likley would have booked off ship. If your just going to need day passes to a resort, call that resort and see if you can book on your own. Like Sunset beach in Jamaica's MOBAY area...we paid about 75.00 less pp than if we had gone to sandals, and i had just as many pina colada's on the beach there and the water and pool were fabulous, and the buffet was good.
I would almost always bet im booking off ship, but do becareful. I tell the guide i HAVE to be back atleast 1 hr before i really HAVE to be back, and i leave atleast 1 hour or more before i have to be back if i do it on my own...i'm always done by then anyway lol.
The excursions on the ships cost more than the cruise itself if you do a good excursion daily, in that i'm saying i could have spent over 100.00 snorkling for half as much time in the caymans plus we swam with the stingrays longer, (i spent 35.00), we spent around 30.00 each at the resort in jamaica (i believe sandles is 100 pp) and in Cozumel we just took a 10 minute taxi for 10.00 to Chankaanab and it cost under 20.00 to snorkle...way way more for the excursion and we werent rushed and did what we wanted and left when we wanted etc.
Good luck, just dont miss the boat!