I have been to Baha Mar and to many resorts in Mexico.
I MUCH prefer Mexico. I find the service, food and weather superior to most Caribbean destinations. I have never felt unsafe in Mexico, though we tend to stay at high end resorts and choose to stay on site (mostly because we want to, not safety concerns).
I'm not sure what level of resort you like, but my personal favorites are Rosewood Mayakoba, Nizuc, St. Regis (in Riviera Maya) and Las Ventanas in Cabo. We've also stayed at the Hyatt Ziva in Riviera Maya, which is AI. I was not a fan, but many people love enjoy. I've also heard good things are Grand Velas in Riviera Maya.