cPanel creates a "default" email account that stores all email routed @yourdomain.com but it must first be configured.
One way to ensure that you get all email directed at your domain is to create a “catch-all” email address. This means any email routed @yourdomain.com. For example, if my website is Butumtech.com, anything@butumtech.com will be routed here.
Since this can often be a huge resource drain (i.e. use up disk/Inode restrictions) as well as a "playground" for spammers, we set the default to send a failure message to email sent to an address that does not exist.
However, if you would like to enable this, you can easily do so right inside of cPanel -> Default Address:
From here, you can enable how you would like this routed:
From here, you can see the default setting to fail any email sent to a user that doesn't exist.
As mentioned above, we strongly suggest keeping this enabled unless you have a very specific reason for enabling. It will use up a lot of resources if not carefully monitored/cleaned out!
In the screenshot above, you can see you have several options:
Forward to Email Address - Using this option you can forward the email to your existing email account. If you're using a third-party provider such as Gmail, you should remember they're going to treat Spam like you're sending it from your domain, so you should make sure you're using aggressive Spam filters.
Forward to your system account - I placed a red arrow in the screenshot above as you have to click the Advanced Options link to get this to appear. When a new cPanel account is created, it automatically sets up a "default" email account that can be used as a catch all. If you select this option all un-routed email will go to this inbox.
Pipe to a Program - Some third-party applications accept inbound email as a means of submitting data. Only use this option if you specifically know you have a PHP script setup to do this.