We booked a Royal Swim in Cozumel through www.dolphindiscovery.com - actually, it was already full by the time I went to site so I called and they fit us in. It was something like $139 + park entrance + cab so it was actually more than the ship excursion but they do SO much more than the standard "Dolphin Encounter". We watched both and have no regrets that we went with the more expensive encounter. We got to do the foot push and the belly swim. It was amazing.
Go to www.cozumelinsider.com for a printable coupon worth $2 off Chankanaab Park entrance, per person. We used it in March and it worked. We had a group of nine so we needed two coupons but we saved a total of $18.
On another cruise with Royal Caribbean, we did our own trip from St. Thomas to Trunks Bay on St. John. It was super easy and we had a great time. We saved about $12 or $16 per person.