You can not register a .COM domain for FREE -- it costs even the registrar money to do so. A company wouldn't simply offer it for FREE because that would clearly be a poor business model.
If you choose to use a hosting service that provides a free domain (for example liquidweb.com), you'll need to pay them for the hosting and they do not have to let you keep the domain if you cancel. Before paying them, ask them if you're able to transfer the domain to another hosting company if/when you cancel.