While this question is likely more suited for a forum, I'll do my best to answer your question from my experience with these technologies as well as what I've heard from others. First lets look at what these services provide for Crash Reporting, then lets look at what they provide that ties into Crash Reporting.
Flurry provides (at a high level):
- Analytics of event based metrics (this includes optional basic crash reporting)
- server-side symbolication (however uploading symbols is a manual process)
All this is great, but they really don't focus on crash reporting at all or how that ties into other metrics.
Crittercism provides (at a high level):
- real-time insights on reports (system diagnostics, logs, etc)
- smart crash/error grouping
- error monitoring with actionable diagnostic information
- logging non-volatile errors
- server-side symbolication for stack traces
- location correlation with above metrics
- session based metrics for a crash report
- client perspective network performance data (note: this would be great to keep track of your web services and other 3rd party services, such as Flurry, to see how they're performing)
- trends of above metrics and data
- connection between network calls and crash/error reports (look at breadcrumbs)
See the above link for more details on the full package that Crittercism provides. For more details on some of the features, check out this page.
All of these are focused on giving you full visibility on how your app is performing for each of your users.
Crashlytics provides (at a high level):
- smart crash/error grouping
- error monitoring with actionable diagnostic information
- server-side symbolication for stack traces
- logging non-volatile errors
- real-time insights on reports (system diagnostics, etc)
Flurry can be paired with more robust solutions for Crash Reporting and in my experience most end up taking this route.
Crittercism provides a lot more than just Crash Reporting that ties back to optimizing the performance of your applications with actionable data. They also hook into Mobile-ready support systems (such as UserVoice and HelpShift) for better customer communication, and several task management systems for engineering (JIRA, Github, Pivotal). Server-side symbolication, APIs to pull data, simple integration with build tools (such as Jenkins) provide a much more mature solution.
Crashlytics provides an easy integration for the average developer. I've heard complaints from developers with more defined build processes (such as something that uses Jenkins) that their app integration for uploading symbols for symbolication gets troublesome.
They also provide integrations with JIRA and Github. Not sure at what level.
Some love the UI for Crashlytics, whereas others have stated that it gets in the way.
Hope this helps.