A lot of times I will send my clients shore excursions that aren't through the cruise line however, there is a benefit to booking through the cruise line line. If the ship can't dock in the excursions are canceled, the cruise line refunds your money. Usually if you book with an outside company, they don't (but if you have outside insurance it possibly would be refundable).
If you miss the ship because your excursion is late, if you book through an outside company, it is your responsibility to figure out how to get to the ship at the next port. There is a caveat that one of the companies I use has a guarantee to ship. But sometimes you can save money booking outside.
In Roatan, we did Maya Key and I think it was the best snorkeling I've ever done in my life.