The issue is that this is bypassing one of the things some companies use your credit card as - collateral.
For example, if you rent something, the credit card is used as a guarantee that you will return the item. If you don't, they can charge the card for the full price.
If you use virtual cards, they can't do that.