In a timer situation, the biggest advantage of using a virtual switch is that you can then also turn on the regular switch in other ways without it turning itself off automatically. That is, you only apply the power allowance restriction to the virtual switch.
A common use for this is a porch light. You could have the virtual switch come on when you arrive home and turn itself off again five minutes later. But if you were going to be working in the yard and you wanted to turn the light on and leave it on until you turned it off again at the switch, that would still work as well.
If you just applied power allowance to the actual porch light, it would keep turning itself off every five minutes no matter how you turned it on.
We used to use virtual switches for all kinds of things, but now A lot of the things we used to do with virtual switches are done with webcore instead. But for a simple timer, a virtual Switch may be faster and easier to set up.
But virtual switches still have their uses, particularly for integration with other systems, even echo and google home.