Such free domains with cheap web hosting can be got from certain web hosting services
WHAT IS DOMAIN REGISTRATION
A domain registration means purchasing a domain name or the URL of a website for a certain period and use it. Generally you get domain names for a cost of $20. If you want you can buy a used domain name if it is sold for profit then the price may be high/low depending on no. of visitors.. Generally the maximum period for which you can hold a domain name is 10 years. This domain name registration is to be done with some registrar like go daddy ,Hostinger, blue host etc. A domain registrar houses domain names and DNS records. In the DNS records a name server directs traffic from your domain name to the website where your files are located.
A web host is a provider of space on their server to house your files, images and other data and assigning an IP address to it. This IP address is connected to the internet.
Some hosting providers can register your domain name as part of their service. Then this is followed by either building blog/ website. You can own adomain and use it for blogs. You can obtain domain from one service provider and web hosting can be done from other web hosting provider. So domain name and web hosting are two entities.