Though, it depends on the company and the team in consideration, in general, dedicated teams are usually more efficient because
a. Dedicated teams are  focused on one project and they have the infrastructure they need to get the job done well. While in the case of internal teams, it is observed that they struggle with getting things done on time and within budget because they get distracted by many overlapping tasks
b. IT is a highly dynamic industry, where we get exposed to newer technologies, frame-works and methodologies quite often. While internal teams generally tend to become task masters within a limited capacity/skill, dedicated teams give you the flexibility of latest technologies and changing infrastructural needs, with latest tools in place.
c. Maintaining a full-fledged internal team is a costly affair in terms of HR/Legal regulations adherence while when you hire an outsourced dedicated team, you can scale up or descale the team as per the project requirements, without worrying about any additional documentation or procedures.