I'm using both on a site and getting very different numbers from each. Why is this?
The discrepancy is also mentioned in a Quora answer (Which is better, Facebook Insights or Google Analytics?)
Footnote: if you decide to use both, do not report them side-by-side, and never expect them to match. Trying to explain the differences will drive you mad.
Could someone explain?
There are tons of possible reasons. They might identify returning visitors in a different way or users might block scripts from a specific domain (e.g. *.facebook.com but not *.google.com). In general, ignore the discrepancy. Just pick one solution and use it. You'll always have visitors blocking all such scripts or just one or two specific trackers. The only (almost) 100% accurate way to do it, would be using local scripts, but even those could be blocked. You could as well look at open source solutions such as Piwik