This gets framed as a permanent, ideological choice, when it's really a fit question that changes as a business grows. Neither option is automatically right, and most companies end up needing both at different points.
An in-house team lives inside the company's context every day. They don't need onboarding on internal politics or product nuance, and they're available for the fast, small requests that don't justify an agency brief. The tradeoff is depth: one or two generalists rarely match the range of twelve specialists.
An agency brings range and outside pattern recognition, having solved similar problems across other clients and industries. The tradeoff is context: they start further from your specifics and need real onboarding to close that gap, and they're rarely available for same-hour requests.
Skip "which is better" and ask "what does the next twelve months actually require." A steady, predictable stream of day-to-day execution favours in-house. A specific, time-boxed push, a rebrand, a campaign launch, a website overhaul, usually favours bringing in specialists for exactly that window.
A common, sustainable model is a small in-house team handling always-on work, community management, routine content, day-to-day requests, paired with an agency for the specialist or project-based work that doesn't justify a full-time hire. Neither side has to do everything.