why are non admin users having fatal error when accessing CiviCRM and dashboard doesn't load?
Based on this line:

#8 ../sites/all/modules/civicrm/CRM/Contact/Page/AJAX.php(606): CRM_Core_BAO_Dashboard::getDashletInfo(5)


I can see that the error is to do with dashlet number 5.  Since CiviCRM generally ships with 6 dashboards pre-built, that means that what I see as dashlet 5 in the database is the same as you.  So I ran:

mysql&gt; SELECT id, name, label, permission FROM civicrm_dashboard WHERE id = 5;
+----+----------+-----------+---------------------------------+
| id | name     | label     | permission                      |
+----+----------+-----------+---------------------------------+
|  5 | allCases | All Cases | access all cases and activities |
+----+----------+-----------+---------------------------------+


So my guess here is that you have this dashlet, but CiviCase may not be enabled.

Check your Drupal permissions to make sure your users have the "access all cases and activities" permission.  If you're not using CiviCase, remove this dashlet from user's dashboards with this SQL command:

DELETE FROM civicrm_dashboard_contact WHERE dashboard_id = 5;


Also - if CiviCase is disabled, you may be able to temporarily enable it to modify the permissions appropriately.