I'll give a few:
- Possible lack of continuity with your staff/applications. An outsourced DBA service might send different people to work on the system over time.
- Variation of quality with remote DBAs. With someone you hire, you know who they are.
- Response time might not be as great. If two clients have issues, who does the service respond to?
- distance can be a factor. While I'm an advocate of telecommuting and think this can work fine, there needs to be face to face contact at times.
This was a sponsored article by SQLCentric, and it brings up some good points about how a managed service can help. There are some good positives, and plenty of us call experts for specific problems.
I'd say that if you have the need to call someone every day, perhaps you should hire your own, but if you need a DBA only once a week or less, than does it pay to hire one? I'd argue it doesn't necessarily pay to let the sysadmin or lead developer do this job. They can easily cost you more than hiring someone internally.