Locutus and ronald have provided excellent explanations of how things went down, but I’ll confirm it from an official position:
About seven years ago, we made a terrible mistake. It is a mistake that we regret to this day. Subdomains, as implemented in cPanel, are stupid. We implemented a version of them on a whim, because a lot of users, at that time, were migrating from cPanel, and they wanted familiar territory. We regretted it from the very first version in which they appeared; and threads like this remind us of the regret and pain and suffering we caused with that mistake. The support load caused, and the amount of confusion caused, by “subdomains” was probably the largest of just about any feature we’ve ever implemented. People coming from cPanel understood them (mostly), nobody else did. People assumed that if they wanted a subdomain named website, it had to be a “Subdomain”, which doesn’t even make sense.
If you got subdomains when migrating a cPanel backup, that would be a bug, and we’d want to fix it. They’re supposed to be converted to subservers unless subdomains are enabled. Some day in the future the subdomain feature will be made invisible (only enable-able via direct editing of config files), and some time after that the feature will be removed. We really hate that feature.
But, I beg of you: Do not use “Subdomains”. Do not enable them. Do not speak of them. Treat them like Voldemort. They are the thing that must not be named for fear of driving Joe mad.
When you want a subdomain named domain, just name a virtual server or sub-server with the subdomain name. Names mean nothing to Virtualmin. As far as Virtualmin is concerned you can name a virtual server sub.virtualmin.com and have one of its sub-servers be named virtualmin.com (or both could be separate virtual servers, or both could be sub-servers of webmin.com, for instance). There is no relationship between the name and the ownership of the domain in Virtualmin. Subdomains are just domain names, like any other.
I’m with you on the potential for confusion of “Virtual server” equaling “management account”. That was a tradeoff we made many years ago and it stuck. I’m honestly still not sure we made the right decision, but we’re nearly a decade in now, and we can’t change it. The goal was to shorten the path from “I want a website” to “I have a website”. In Virtualmin that’s one form. “Create Virtual Server” is all you need to know to go from “want” to “have”, so that’s good. The negative is that people coming from panels that have an intermediate “I want a user that can create websites” step can become confused.