There can be hundreds of reasons that an email you were expecting did not arrive, but the vast majority of cases are very similar. Some initial trouble shooting can greatly assist in finding where the problem lies.
Blacklisted
Check that the senders domain is not on a RBL (registered black list) for spam.
Go to a blacklist check site such as https://mxtoolbox.com/blacklists.aspx or https://blacklistalert.org. and search for the domain.
Note
This may not be accurate if the mail server sending is different than the sites IP address. But is still a good simple check.
Quota
Make sure that your mailbox has not exceeded its quota.
Go to your cPanel Account, head to the ‘Email’ section and click ‘Email Accounts’.

Check the quota next to your email account.

Verify MX Records
Make sure that your MX records are correct. Each MX record points to an email server thats configured to process mail for that domain.
In most cases this will be the server your site is hosted on, unless you have your mail hosted elsewhere.
If your server is being used as the DNS:
Login to your cPanel account.
Go to the ‘Domains’ section and click ‘Zone Editor’.

Next to the domain click ‘Manage’.

Review the MX records to confirm if you should be receiving mail.

Mail Routing
If your mail routing is configured incorrectly your server may be set to deny mail completely. You can verify this easily.
Log in to your cPanel account.
Go to the ‘Email’ section and click ‘Email Routing’.

From here, you can verify if the server is intended to handle mail.

Note
If your mail exchanger is set to Backup, your server will only recieve mail if the primary MX record fails. If set to Remote, your server will actively deny accepting mail for this domain.
Check Mail Delivery Logs
You can also check to see if the mail even reached the server via the Delivery Report Logs. You can do this via WHM or cPanel.
For cPanel
Log into your cPanel account.
Go the to ‘Email’ Section and click ‘Track Delivery’.

Review the mail to ensure it even hit the server and what was done with it. (tick any boxes if they arent already to see the different success status of mail).

With WHM:
Log in to WHM.
Search for the ‘Email Delivery Reports’ section in the search box and click on it.

From the dropdown set to ‘From Address’ and set your date range (around the date you expected the email to arrive)

Click on ‘Run Report’ and review the logs.
Check Webmail
If you are using a mail client, try logging in via webmail to verify you can see all mail.
You can find it by visiting either:
Further Notes
If mail isn’t in the delivery reports, the server generally hasn’t received the mail at all. All receipts (even bounces and failures) are logged. No logs generally means no mail.
If you have external mail filters, you may need to review them.Failing these checks, you would need to reach out to the send to have them review the mail server on their end to confirm. Mail servers will report if the receiving server even responded to make the mail connection and can provide more info if there is an issue.