Possibly because it often isn't coding in real C++. In ATLAS, and particle physics in general, we use this awful data analysis package called
ROOT which is about the worst example of C++ code you can possibly imagine (although it has significantly improved over the years). This package uses a C++ interpreter so that you can write C++ scripts. Sadly this interpreter cannot implement the full set of C++ so major bits of functionality are missing like virtual functions so it's hard to really call this C++.
Unfortunately, while there are many issues with ROOT, it is incredibly fast at I/O and has lots of features which do what we need (if you can navigate past the bugs, memory leaks and dodgy documentation). One way to do help with this is to use the Python interface so many of us use the Python interface as a shield from the full horror of ROOT. The other alternative is to write compiled C++ code which gives you the complete C++ functionality but still leaves you with the minefield of linking to ROOT. To give an example of how bad this can be a few years ago they had a bug which made you code dependent on the comments i.e. by adding a comment line the code generated a duplicate symbol error when linked. After a day of tracking this down to a pre-processor macro I was told by the root development team that they already knew about this bug but could not fix it...that was also the day I switched to using the Python interface!