The drug trade is such big business that Mexico doesn't have an economy sufficient enough to compete with it. Therefore, they can't pay the monies needed to properly clamp down on it.
Afghanistan has the same problem in regards to opium. Farmers don't grow poppy because they want to be criminals - they grow poppies because it's one of the few things that thrives, and so they grow it as a cash crop to earn them some money. They do it because poppy farming is one of the few economically viable industries they have.