Cheaper at destination but quality varies and generally lower than booking with cruise line. Example: we booked flow down the river tour for 50% of what cruise line charge for the same. Same river but we we got old shitty bus, used tires for flow down, guide who did not speak much English and mediocre lunch. Cruise line peeps got new bus, newish purpose-built float devices, guide joking/telling stories and much better lunch. They also paid ~100$ more per person so you decide what’s important for you quality/$.
Check out TripAdvisor and look for your excursions there. You can prebook for cheap and get off the ship and go. Downside? Late ship or skip port? You're out the money.
Usually it’s significantly cheaper at the destination. No idea about Caribbean