Now, if you look at the OU tier, you'll see that there is a total whopping of 3 Pokemon that resist the passive damage caused by hail.
Might want to revise that number - Alakazam and Reuniclus are immune through Magic Guard. Poison Heal Breloom and Gliscor still gain about 6% health every turn. The other weather starters, while not immune to Hail, get rid of it (Abomasnow can't switch in on any of them except Hippowdon). So the final number is essentially
11. A far cry from 3, huh?
EDIT: I guess there's Overcoat Forretress, but that got a little over 3% usage on Forretress. Yeah.
Now, imagine the opponent taking 6% of damage each turn, ALONG with the 25% of a curse from a rest talking dusclops, AND the 12% from 1 layer of toxic spikes or burn, AND the 12% from a leech seed, AND then add that up with damage they take from your ferrothorn using a rocky helmet. The opponent will be dead in 2 turns. You see, this is how powerful Hail can be.
No good player will allow all of this to be set up at once. Curse is just bad anyway, especially on a Pokemon meant to take hits... and in Hail, you're killing yourself faster than you're killing the opponent with Curse. Toxic Spikes isn't that great in this metagame either - you have to be able to beat Steels, Flying-types, Reuniclus, Alakazam, Conkeldurr, Poison Heal Breloom, and Tentacruel all at once.
With Sandstorm, so many types are resistant to it, and here's the thing with hail. If you have out a walrein, and you have 2 layers of toxic spikes out, then you can essentially stall out the entire enemy team to death with a combination of protect and sub, along with the combination of super fang and brine for things that can't break your sub.
Same here. Sand might have more types immune to it, but it also provides benefits besides Ice Body - 50% Special Defense boosts to Rock-types, Sand Force, and Sand Rush.
The thing is though, with the sheer defensive power that pokes that benefit from hail have, it can EASILY achieve all of this, as well as being able to fire off 100% accurate blizzards.
Any decent Fighting-type would like a word with you - Terrakion, Conkeldurr, and Keldeo all pose a serious threat to Hail. All of that is nearly impossible to set up even on the best stall teams
Abomasnow, Nidoqueen, Heatran, Dusclops, Ferrothorn, Walrein. All of these pokes together can create a great team, one that is capable of setting up every entry hazard in the game, along with the ability of 4 out of its 6 team members having the ability to fire off 100% blizzards.
As long as Dusclops goes down (not hard), a Calm Mind Keldeo can sweep through this entire team. Swords Dance Terrakion is in a similar boat, although it needs to beware of Nidoqueen instead. (What's Dusclops doing to it when it's behind a Sub?)
Don't get me wrong, I enjoy using Hail and I like using Toxic Spikes (I dropped Spikes for Toxic Spikes on my team, get at me OU), but overall they aren't nearly as good as we'd all love to believe.