Is there a setting to automatically Refresh Dashboard Data on a user login, or when returning to CiviCRM Home?
I don't think such setting exists, although, you can set the timeout for the Dashboard cache navigating to Administer - System settings - Misc and set the the Dashboard cache timeout to the value desired in minutes, setting it to 1 minute for example it will refresh the Dashboard data every minute.

I guess the other option would be to create an extension and use the resetDashletCache method on login