I wonder if your mail host's IMAP server isn't properly handling IMAP IDLE requests.
I assume if you use Mail's
Connection Doctor it shows no unexpected behavior when checking for new mail, so if that's the case try the following:
1) Go to Mail's
Preferences
2) Select your account in the "Accounts" section and select the IMAP account you're using
3) Click "Advanced"
4) Uncheck the box next to "Use IDLE command if the server supports it"
5) Close the accounts window and click "Save" when prompted
6) Try retrieving newly received mail again