In a large skillet over medium heat, melt 1 tablespoon butter. Add diced shallots and cook until softened and translucent, about 2–3 minutes. Add the remaining 2 tablespoons of butter and garlic; cook for 30 seconds until fragrant.
Sprinkle flour over the mixture and whisk continuously for 1–2 minutes to form a pale roux (it should smell slightly nutty, not raw).
Slowly pour in the half-and-half while whisking constantly to prevent lumps. Continue cooking, whisking frequently, until the sauce thickens slightly, about 3–4 minutes.
Stir in Parmesan cheese, salt, pepper, and nutmeg. Continue stirring until the cheese is fully melted and the sauce is smooth.
Working in batches, add spinach to the skillet, folding gently with a spatula until wilted and well combined. Once all the spinach is added, continue cooking for 2–3 minutes, until spinach is fully incorporated and heated through.
Taste and adjust seasoning as needed. Serve hot.
Notes
Using frozen spinach? Substitute with one (10-ounce) box of frozen spinach, thawed and squeezed dry. Stir in during Step 5 until heated through.
Using mature spinach? Trim tough stems, blanch for 1 minute in boiling water, then shock in ice water and drain thoroughly before adding in Step 5.
For extra creaminess: Add 1–2 oz cream cheese along with the Parmesan in Step 4.
Brighten it up: Stir in a teaspoon of fresh lemon juice at the end of cooking.
Spicy twist: Add ¼ teaspoon red pepper flakes with the garlic for gentle heat.
Leaving the stems on adds a bit of texture and a rustic feel. If you prefer a smoother creamed spinach, simply break them off before cooking.