With MTG you can skip the whole booster buying and just get the cards you want from people who have them. The rarest most desirable cards in standard are $10-$50 at most. If you want a rare overwatch skin you have no option but keep buying boxes until you get it.
This is more nuanced. You get in-game currency for skins/cards you already have in both Hearthstone and Overwatch, which is equivalent to being able to sell your cards
With hearthstone, can't you also "sell" any card you have for in-game currency, in addition to getting currency when you obtain a duplicate? In overwatch, you just get currency for duplicates (or randomly from a box).
I believe in Hearthstone, the only option you have is to turn the card to Dust, and then it takes so much Dust to craft other cards, based on their power and rarity.
Which is unfortunately one of the ways that the companies try to avoid being labelled as gambling, because they do not allow you to sell or trade the items that you get. There is no secondary market for these games nor a way to cash out.
If I want to quit playing M:TG, I can sell my cards (I've done this twice, and it's been profitable both times). If I stop playing FIFA, there's no way to recoup any of the money I've put into it. My rewards from FIFA loot boxes are tied solely to FIFA.
Funny things is, MTG cards are produced in Belgium; and now there is MTG: Arena, where you can either earn boosters; or pay for them with real money.
Feels a lot like loot boxes/gambling to me, in either instance. Okay, at least IRL you have a (largely unregulated) secondary market to sell/buy/trade cards.