There are various reasons, but one of the big one is because the talent pool isn't large enough in most places.
It's hard to get someone to move to London for a job, but it's even harder to get someone to move to a smaller city, so you get much more restricted to the local talent pool.
You see hubs of companies around university towns with good CS programs (Oxford, Cambridge, Bristol, Edinburgh) as universities draw talent in from a wider area, but for most cities there simply aren't enough people in a concentrated area.
I live in (near) a smaller city (70,000) with a University. We have a vigorous startup landscape.
There is no monopoly on brains in a large city. In fact, as my Aunt Kate used to say, Honey attracts Flies. Big cities have a disproportionate share of not-so-good players. In smaller towns you can only stay if you're employable, have a modicum of skills.
Still, there's many other drawbacks - scarce investment, more difficult to find markets, absolutely bounded set of talent, hiring inertia (folks tend to stick to their job).
It's hard to get someone to move to London for a job, but it's even harder to get someone to move to a smaller city, so you get much more restricted to the local talent pool.
You see hubs of companies around university towns with good CS programs (Oxford, Cambridge, Bristol, Edinburgh) as universities draw talent in from a wider area, but for most cities there simply aren't enough people in a concentrated area.