Steam cleaning is better for sure but only if whoever operates the machine is doing it properly and sucking up the excess water thoroughly and not rushing it like many carpet cleaners seem to do.
Dry cleaning from what I have seen just isn't able to penetrate deep into the carpet pile to remove all the dust and dirt like steam cleaning can. It will remove the stains for sure but as far as a thorough deep clean of the pile goes, I don't believe it can deliver that.
Someone correct me if I'm wrong