The answer is, it has nothing to do with "real world object orientation", whatever that is. It is a just a programming language feature.
There could be object oriented languages that would not support inner classes - just like there are programming languages that support inner functions/procedures and others do not.