When you define a service like this, it gets translated to WSDL first. That WSDL is then imported in the client tools and used to create classes and code in the importing language.
Now consider a language that does not support nesting of Classes, what should happen there?
A Service definition is limited to a common denominator of language features. Nested types are not part of the feature set.
There are other C# features that you can't (effectively) use.