Internal server errors can have multiple causes:
- Code syntax errors that happen whenever you hit a particular page
- Problems parsing user data that only happen for a specific user
- Intermittent problems caused by something like the database going down
It is not surprising that different crawling bots find different numbers of 500 errors. You may have some 500 errors that always keep certain pages from loading, but many are going to come and go, or only effect a specific crawler.
Your server logs are usually a better source for finding these errors than the crawl reports from Google and Moz. Your server logs will also show the ones that are effecting actual users.
I routinely monitor my site for 500 errors using the logs and fix them as they come up.