It is best to book your excursions with CCL. If the excursion is cancelled you will get a refund. If you know for sure which excursions you want then go ahead and book them on line with CCL.
And there's another thing. If you go on an excursion that is NOT sponsored or endorsed by CCL and your transportation breaks down, if you are late you can wave as the boat leaves. But if you are on an excursion that you booked through Carnival and they are going to be late for a mechanical reason, they WILL wait. Nice little advantage
We booked through CCL in Jamica..on board the night before the excursion. We did it right in our stateroom on the TV. That is reallly nice and the deliver them to your room and charge them to your sign and sail...so easy to do. It was a nice air condition bus and we could leave our things on board..it was a great trip to Dunns Falls and Gardens..
I just want you to be aware that the cruise lines are not in the shore excursion business; they are merely order-takers for the local tour companies. Yes, they will wait for you if your tour hits a snag, but the local operators know that the cruise ships are their bread and butter and they will do whatever necessary to get you to the ship on time. In many cases the same tours can be booked directly through the operator at considerable savings, It just takes a little research.
As f-mattox noted, some of the shore excursions offered through CCL can be purchased independently as tours. I recommend the ship's excursions. Especially for first time cruisers, and when visiting unfamiliar ports.
It also depends on the port. There are a good number of ports where booking outside of the ship is not a bad thing at all. Because there are reputable firms. There are some ports that I wouldn't advise doing anything but a ship's excursion. For a first time cruiser/visitor, I really think the ship's excursions are the best way to go. You don't save that much money with an independent tour and sometimes the few bucks you might save, you may end up spending some other way. Like taking a cab back to the ship because their vehicle broke down or they forgot to come pick you up because one of their friends had a party.
Contrary to what I've always posted on here I do outside excursions. I simply don't think for the novice cruiser or in some locations they're a good idea for the reason stated and more. Research, as Rick indicated is the key if you're going to find the right folks. Using the same companies contracted by the cruiseline is very good way to go if you can identify who they are or know from a past cruise who they're using. There are so many scams and providers out there that provide poor choices, inadequate vehicles without insurance and other risk factors, you need to know well who you're dealing with before going this route. It's always safest and less trouble to stick with the cruiseline. Always, if in doubt, go with the cruiseline!
I remember our first time at Roatan, when we didn't book with the cruise line but instead got a private tour on the pier. At first it seemed iffy, with a beat-up taxi and driver who didn't speak English. But the tour desk placed local school kids (who spoke English) with the groups - both to translate and to keep us out of trouble. Our "kid" was Albert, an honor student who dreamed of seeing NYC. It ended up being a delightful day. Of course it was not as I normally recommend, but it just seemed right and we felt secure in doing it.
I wouldn't have done it if it was Jamaica and we'd never been there before.