There's two types of results, organic and local results. Local results differ from organic and they are triggered with local searches such as looking for a plumber, car dealership or even a Burger King, these are returned in snack box format which dominates the top part of the search results.
Below the snack box results (local) you get organics, to get listed in Google local you need to add your business to Google My Business. To appear in neighbouring towns you need to improve your reputation with Google through establishing a good reputation with your customers. Google Reviews, Yelp and other sites greatly help... the more reputation the better 'reach' you obtain.
As businesses grow they often open up new stores or business locations, this helps because you can add multiple locations to Google My Business and this increases your radius on 2 locations, not just the one, but even with one location, if you do things right you can grow that radius large... if your business not special then Google will not give you that special treatment. Branding, uniqueness and customer service is paramount in Google local rankings.
Creating lots of gateway pages with
Plumber Town A,
Plumber Town B and
Plumber Town C is generally a bad idea, having a couple won't hurt but if you have dozens or even hundreds then this will work against you, even if the content is unique you're saying the same thing over and over. Google is great at marking sites down as low quality and a site with the same service but in different towns reeks of spam. These pages can appear in organics but unless you have a location added and verified by Google, don't expect to see them in the local results.
Remember Google is a business, they don't want users or businesses creating hundreds of these pages, not only does it create a lower experience for users but Google misses out on Adword sales.
Google wants businesses to improve their local rankings or use Adwords to target neighbouring towns and cities.