The vast, vast majority of programmers are going to be writing software where there are only a handful of threads (if that). The "I need thousands of concurrent executions" case is simply not relevant to most people.
Did you know you can get even more performance if you manually manage memory and don’t use virtual functions?