MLB gives preference to cities who haven't hosted in a while, but only if they build a new stadium (or significantly renovate/update an old one). The National League hosts every other year, and there's been a decent backlog of other teams waiting for their turn (SD last hosted in 1992 at the Murph). So, when you go down the list of other hosts since Petco opened, it's not as surprising as you'd think that Petco hasn't hosted yet.
Minute Maid Park (Houston) - new stadium opened before Petco
PNC Park (Pittsburgh) - new stadium opened before Petco
AT&T Park (SF) - new stadium opened before Petco
New Busch Stadium (St. Louis) - new stadium opened after Petco, but StL hadn't hosted since 1966
Chase Field (AZ) - new stadium opened before Petco
Citi Field (NY) - new stadium opened after Petco, but the Mets hadn't hosted since 1964
Great American Ballpark (Cincy) - new stadium opened before Petco
That being said, I think San Diego has an excellent shot at hosting in 2017. The only competition (i.e. city with a new stadium that has waited longer) is DC. However, Baltimore is considered the American League front runner for 2016, and MLB won't want to double up on that metropolitan area in consecutive years.
If Baltimore gets '16, I think Petco is a lock for '17.