It's a classic chicken and egg problem.
Companies don't want to establish new offices in cities where they cannot attract new talent or there isn't a large existing base of talent. This limits large new offices to large metro areas (5M+ people)
People don't want to relocate to cities where there aren't multiple job possibilities - you lose your job/hate it and don't want to have to relocate to find a new job or you want to move but your spouse can't find a job there because their industry isn't well represented there.
This leads to a reinforcement cycle where new jobs are created in a city, people flock there, found the next generation of companies, new jobs, more people fleeing less attractive cities and so on...
Things that can happen that could break this cycle include - new industries emerging (like tech in the 90s), poor governance, infrastructure in an area forcing companies to find alternatives (like bay area right now), new skills coming into demand and companies establishing offices to take advantage of that (e.g. Pittsburg emerging as an AI hub, Seattle for 'cloud' skills etc)