That.
In general Arduinos are bare metal embedded systesm, which means that they have quite small amounts of RAM, and no operating system. This makes dynamic allocation (which is rampant in C++ libraries) dangerous, and probably interferes with exception handling.
In addition, avr-g++ for Uno/etc have no libc++ or STL, and so are very limited in what C++ features they support. (Also, they're stuck back at the C++11 of the standard, which apparently leaves out some features that experienced C++ programmers find useful.)
The ESP platforms are relatively RAM-rich (several hundred Kbytes!) and tend to have at least one OS running to handle their radio and Internet protocol processing, and probably have the best C++ support.