You build it you run it
Teams are responsible for running their own code. Simple as that.
Increased communication and documentation overhead: If there's going to be a reliance on an external team to successfully run and deploy your code, then they're going to need extensive documentation and training to be able to do their job.
- Longer feedback loop: When something goes wrong, diagnosing and fixing the problem is going to take a lot longer. Usually in those situations, the team that built the code might not even have sufficient permissions to investigate and fix the problem.
- Ownership and accountability: Ultimately, we should be responsible for the product we're building and will always be best placed to tackle any issues that will arise.
Teams are best placed to know what's needed for their code to run successfully in the different environments. It's not to say that different people on the team can't have different strengths that are complementary. See Small Teams. This is also linked to Focusing on value as the job is not done until it's usable by clients and customers.