Just adding a bit of perspective.
I work in a unicorn company based in California Bay Area that has dev teams in Europe (Netherlands, Lithuania), India and Brazil (probably other locations as well). IME, this is how it works: we pay higher than local salaries, but they're not as high compared to Bay Area (think location-based salary adjustments). This doesn't really put meaningful upward pressure on average companies to catch up because salaries are often tied to what they're able to pay based on what market they serve (local city vs Europe vs global).
My understanding is that with Bay Area salaries come Bay Area interview bars, and that this bar is very high compared to your local dev shop. Not many can pass these interviews (the failure rate is high even in Bay Area). IIRC from my interviewer stats, the vast majority of candidates didn't even get through the screener round and less than a fifth were offered positions (I have in the range of 100s of interviews under my belt). And we only recruit fluent english-speaking candidates, which shrinks the pool significantly.
Timezone differences are a big deal, even if the employees in far-away timezones form full-on teams. Communication is slow and inconvenient, and sync meetings at 9PM/7AM get old pretty fast. Typically there must be some sort of clear cut advantage to outsourcing that offsets the timezone issue (e.g. my understanding is that our India team is there because network conditions there are impossible to replicate in US and reliability despite wild variations in coverage is important for us).
And if you think being highly qualified is a high importance criteria, consider that in our Covid-related round of layoffs, a number of european teams got sacked. And these folks were no slackers, they're seriously some of the brightest folks I've seen.
In short, high pay European jobs do exist, but they're not common, they are hard to land and they are hard to keep.