Anytime I interview I get that impression, but when I work with teams of varying talent levels, there are a lot of people that can write good code it just takes a long time. In the long term these people are more useful than people who write ok code quickly, because they, slowly, reduce the amount of tech debt.
One problem is that it is extremely hard for management to tell good devs apart from bad devs. So that puts a huge randomness in as far as who is given authority and interesting projects and so on. Some of the best devs I have worked with, the best bosses I have worked for would not rehire. It is quite odd.