I have not personally done this, but from what my fellow cruisemates have posted the full dolphin swim is the way to go as opposed to the dolphin encounter. Do some research and see if you can find a credible independant tour operator, sometimes you can only go thru the cruise line for certain tours.
we did the dolphin swim in Ochos Rios last year and it was great! It was our third dolphin swim and Jamaica is such a beautiful setting. Be aware that the people who work there are practicing the hard sell of everything from hair braiding to photos. It was still worth it.
You have to book through the cruise line, they will absolutely not take you if you are on a cruise ship and try to just show up and pay, or even book it in advance (believe me, I tried).
It was a decent dolphin swim, but the best one we've done so far was in Cozumel, bigger area and I just thought we had more close-up time with the dolphins.
And I agree, they were definitely trying to sell everything. In cozumel, they were more amenable to letting us use our waterproof cameras, as opposed to buying their pictures. And because they were, I bought some of their pictures also, because I didn't really know how good mine would come out.