I have done both ship excursions and do-it - yourself excursions. It all depends on the island and the time factor. In St. Thomas I got a taxi to Coki Beach and took a 45 minute class in SCUBA followed by a 30 minute dive at 25 feet for the price of $55.00. The cruise line offered this same excursion for the price of $99.00. I made sure that I was off the ship at the first opportunity so as to be back to the ship in plenty of time before the ship sailed. In fact I still had time to go downtown for some shopping.
In San Juan, having the ship's shore excursion staff totally mess up our tour, my friend and I just got a mini bus after disembarkation and had a wonderful tour of San Juan. Better than the 40 plus passenger bus that we would have been on had we gone with the cruise line's tour.
Unless time and distance from the ship are a factor, I think you can do better with the "do-it- yourself" tour. Usually not as many folk on the bus or minivan and you always have the option of asking for a certain stop or point of interest. Most tour guides are very knowlegeable and willing to accomodate you.