They all get the job done. Bitbucket is optimized for teams using Jira. Github has proven itself, but since they were recently aquired by Microsoft, you might want to consider using GitLab instead to get more for less.
These and other services provide good protective parameters but accidents can happen, and have happened in the past. In general, having any sensitive data on third-party servers should be avoided where possible. Managing your own Git server means you can customize and optimize the hosting environment for your needs specifically. Many of the premium options you get on your own server for free will cost you extra on a hosted service. There’s no reason why you can’t do a combination of both. If someone on your team wants to host their part of the project on GitHub, or another service, they’re free to do that. Git is decentralized. You can have multiple remote repository locations.