
I have found the clearest way to to answer the question, "What is the difference between hosting and a domain name?" is to compare a website to a house. Your domain name is your website address, just like your street number is your home's address. It's a way for visitors to find you. Your street address is not your physical home, and your domain isn't your website. The actual building that makes up your house holds all of your belongings. Your hosting account holds all of the files that make up your website just like house stores all of your possessions. You can rent or buy a home. You can rent or buy hosting.
You purchase a domain name on a yearly basis. Imagine it's like you are paying a small fee to the Post Office to keep your mailing address secure. You should never spend more than $10 a year on a domain unless you are buying a domain from a reseller. This is like buying a house from a flipper. Someone has purchased an available domain hoping that over time it'll become more valuable and they will be able to resell the domain at a profit. Generally you can avoid buying a domain from a flipper. By being creative when choosing a domain you can normally get a similar domain for the cheaper $10 a year. Many internet users today Google websites even when they know the domain address anyways. (I am guilty of once googling Google.) Picking a good domain is important. I suggest never using an acronym for a domain name especially if you plan on doing any radio advertisements for your business. Hearing "Please visit us at www.myp.com" over the radio is difficult to remember and the letters can easily sound like other letters. It's better to just go with the longer name "mikesyardpeople.com." I also recommend avoiding hyphens. You want to make your domain name as easy to remember and type as possible. Because domain names are so cheap, it is worthwhile buying up any easy misspellings of your domain name and the plural version (just add an s to the end) and redirect them to the main domain. While you're at it snag the .org and .net versions too.
Renting space from a host means you are sharing space on a server with a number of other renters. This is the Apartment building of website hosting. Just like renting a home it means you have less of a commitment and your cost for renting is going to be (in most cases) very affordable. There's no "down payment" and normally you pay monthly. The land-lord (hosting company) manages the building (server) and fixes any leaky roofs (server malfunctions) as part of the monthly rent (hosting fee.) For most people renting space is the way to go and will cost about $10 a month. Most small businesses and personal websites do not have enough traffic to require a bigger hosting plan.
However, if you expect to have a lot of site traffic the constant coming and going of visitors can be too much of a strain on the shared hosting and you will need to rent a stand alone server. This is going to cost quite a bit more. It's the difference in price between renting a studio apartment and a luxury beach single family home. Whether your build your owner server and hire a management person or rent a private server you have the space to handle a lot of foot traffic and lots of storage space. You'll also get a different tier of customer service. You'll be paying probably at least 10 times as much per month, but hopefully if your website is getting that much traffic, that indicates business is going well. Having so much traffic that you need a private host is a good "problem" to have.
Once I have equated a domain to a street address and a hosting plan to a home to the person asking the question we are on the same page and they understand why there are two different costs for the domain name and the hosting on my estimate. This might seem like a simple concept to those of us who make websites, but that's the reason our clients hire us. Website vernacular can sometimes sound like a foreign language to those who don't do this for a living.