Originally Posted by
campo
Basically the good reason is that web hosting services provide only web hosting and not domain name services, and vice versa. In general, not many companies offer a combined service and when they do, it's generally (a) not very good value for money or (b) two separate companies that work closely together to make it appear as one (eg. Smugmug and GoDaddy). As Allan pointed out, sometimes a web host doesn't provide all services associated to a domain name (eg. email). It's a little confusing, but the way it works is actually very flexible.
Whilst Rick describes it as a "redirect", a domain name registration is more like a internet bookmark, it simply tells your browser where to find the server that hosts your website. For example I can change my hosting provider (eg smugmug) to another provider and when i'm ready to switch over i simply switch where my domain name "bookmark" points.