I migrated all my projects to Bitbucket when GitHub decided they do not want to host release downloads (they reversed the decision after that). I also use other Atlassian products and I trust the company to maintain the product, much more than I trust GitHub.
Bitbucket has much better review tools - hierarchical comments, approve button, side-by-side diff (GitHub has added that recently).
You can see commit log as a "graph", not just a simple list. It's easier to identify merges.
And it does not charge for personal private repositories.
GitHub decided they do not want to host release downloads (they reversed the decision after that)
AFAICT they haven't, at least i don't see any way to upload release tarballs. they certainly let anybody download tarballs generated for any annotated tag. but those tarballs are not immutable! once in a while, these tarballs start coming down with different hashes, presumably as github changes the code which generates those tarballs. that makes them less than ideal as package sources.
I really love the branch-level access control on Bitbucket. Being able to say that developers A,B,C have access to the repo, but only A can push to master, is incredibly useful.
I use GitHub, but I concede Bitbucket has cooler features (free private repos, password protected repos, etc). It can't beat GitHub's UI/UX and community though.