Google Analytics is javascript based which means a browser or some environment that can execute JS needs to open a page for a "pageview"
There are many more HTTP requests for a given URL. Bots, spiders, aggregators etc. Since Bit.ly and other shorteners are doing 301 redirects, they can't really discern between the requests. Well, maybe they could with some well known agents, but it is not really feasible to detect every one out there. At least that probably accounts for much of the discrepancy.
