On the first glance these findings seems to be surprising. Shop owners in big cities have to pay higher rents. They therefore try to shift their costs to their customers. And residents of larger cities often have higher incomes than people in smaller towns because there are more high paid jobs (Banks, headquarters of companies, law firms et.al.)
I believe the lower food prices can be explained by the fierce competition. In my neighborhood in New York`s Lower East Side there is a Deli almost at every corner. These little shops, elsewhere called convenience stores or kiosks, are competing against each other. Thus they are forced to keep their prices low. There also are a lot of super markets like Key Food, Union Market and Whole Foods. In smaller towns - and villages - the competition is much thinner. Often you will find just one or two groceries in your neighborhood which can charge more with little risk to lose custumers.