Cabo would be your best bet, I use Amigos Del Mar (they are located about 50 yards from the cruise ship dock).
the dive sites in Cabo are all within 5 to 10 mins of the cruise ship area. You can see sea lions, puffers, rays, eels, lots of tropicals and still have half the day to walk around Cabo. The dive sites are all right close to the famous Arch and Lover's Beach. We have gone to Lover's Beach for our hour between dives and it is cool.
PV has about the same type of fish and hard corals as Cabo, both have pretty good vis, BUT the dive sites are at least 30 mins (Los Arcos) to 1 1/2 hours (Las Mariettas) from the cruise ship port. PV is awesome to walk around though.
I haven't dove Mazatlan. Have fun.