We stayed at the San Juan Marriott Resort & Stellaris Casino when we sailed out of San Juan. Even though it is Disney's recommended hotel and they offered transportation from there, we booked it on our own and took a taxi to the cruise terminal. But it was nice and you could sign up for a Disney transfer from the hotel lobby. We would stay there again.
Not the closest to the port, but I recommend the Marriott Stellaris - great family-friendly resort. I've stayed there four times, and they are very accommodating with check-in and check-out times, room upgrades, etc. The beach is nice (free beach chair setup!) and the pool has a waterslide and fun splash area for the kids.