Why does cPanel not send quota notification emails?

The first thing to check if these are not being sent is if the appropriate options are enabled. In Main » Server Configuration » Tweak Settings there is a section for Notifications in which you will want to enable the various options as to your liking, e.g.:

Notify the admin, (or the reseller), when an account has reached the "critical" Disk Usage state.Threshold percentage where a user's disk usage is considered to be in the "critical" state. (0 will disable this notification)

If these options are already enabled, then there is another reason why the emails are not being sent. cPanel's quota notification mechanism which dispatches emails for accounts that are nearing or at their disk quota is tied to the nightly update mechanism. If you have disabled cPanel's nightly updates in Main » Server Configuration » Update Config, (any option with Manual Updates Only), these emails will not be sent. You will need to either enable updates, or create a cronjob to run cPanel's quota check script. This is detailed below, assuming you are logged into your server via SSH as root:

# crontab -e

On a new, blank line in this file (hit the Insert key to enter text entry mode if using vim), enter the following:

0 3 * * * /scripts/quotacheck > /dev/null 2>&1

This will have the quota check script run nightly at 3:00AM local time. Save the file and quit the editor (:wq in vim)and your new crontab will be installed.