I usually prefer (destination dependent) to book 3rd party excursions. I think that's all I booked for our British Isles cruise and some for our last Caribbean sailing.
Definitely check Trip Advisor and there are tons of groups on FB. You can even Google the destination you're going and search for "tour companies" or more specifically, "tour companies that cater to cruisers." A reputable tour company is pretty easy to find. They generally run their business by word of mouth and good reviews from people who have used them and have shared their experiences. And if you're worried, tour companies who market to cruisers absolutely understand the importance of getting you back to your ship in time. They wouldn't be in business if they didn't. Plus, overall, you generally save a lot of money and your money goes straight to the tour company, which on a smaller island can really help out.
For example on our last cruise, in Cozumel, we booked Mr. Sanchos all-inclusive beach resort, which is really well known as a place you can extremely easily book yourself. Also, we booked Daniel Johnson's Monkey & Sloth Sanctuary directly for our last port stop in Roatan. I believed we combined it with snorkeling (that they offered) as well. We paid probably half of what the same tour was through our cruise line. We toured the sanctuary with a small group, but the snorkeling was completely private. And all of our money went directly to that sanctuary. BTW, I HIGHLY RECOMMEND this place if you ever have a cruise stop in Roatan!
Edited to add: In our experience, the tour company will offer a refund if you ship cannot make it to port. We had a jet ski excursion booked in Grand Cayman, but our ship responded to some kind of emergency call overnight and we were unable to port. I got a hold of the tour company and was refunded. But each company is different, so make sure to check what their policy is.