Large companies often have hundreds of apps with dozens of components, and each one has multiple environment types (dev, test, prod, etc) plus VMs to support internal IT operations plus other business operations, etc. Add in multiple datacenters/sites and it's not uncommon to have 10,000+ VMs in a customer.
IN regards to vdi, which horizon view has the ability to automatically create and delete desktops, there are extra ones that are created for this process as optimized templates so they can be copied quickly when new ones are needed. IF your interested look up linked clones and instant clones, below is a link for how instant clones work
There are 4 vms that are needed before the actual virtual desktops are created in a desktop pool
In addition to what the others have already said:
If you have the possibility to separate different workloads for free, why not use it?
For example, in the past (before virtualization) you had one physical server with 1-2 sockets, 2-6 cores, and 32-64 GB of RAM that served as a domain controller, DNS, certificate authority and maybe even as a file server.
But VMs make it easier to separate and split these workloads.
Today you can have one VM as domain controller, one VM for DNS, etc. Together you also have 32-64 GB RAM in use, but instead of one system you have 2-4 systems now.
The same is true for physical web or application servers where also often a database was running. And there are many other use cases and examples.
That's why the number of systems is constantly increasing.