Steam cleaning is best as it extracts the dirt out of the carpet. While dry cleaning is scrubbing the carpet with some chemicals and soft pad scrubber. Places like hospitals, Child care centres, age care, disability centres etc where you got urine, vomit, blood etc on the carpet , people prefer steam cleaning as it extracts that unhygienic dirt out from the carpet. while dry cleaning will try to scrub that dirt to remove the stains and would not help to extract it out of the carpet.