01 - Bring a large pot of salted water to a boil. Cook penne according to package directions until al dente. Drain, reserving 1/2 cup pasta cooking water.
02 - Heat olive oil and butter in a large skillet over medium heat. Sauté chopped onion for 2 minutes until softened. Add garlic and cook 1 minute more.
03 - Cut salmon into bite-sized pieces, season with salt and pepper. Add to skillet and sauté gently until just cooked through, 3–4 minutes. Remove salmon to a plate.
04 - Pour heavy cream into skillet and bring to gentle simmer. Stir in Parmesan, lemon zest, and juice. Season with salt and pepper.
05 - Add drained penne and baby spinach to the sauce. Toss well, adding reserved pasta water as needed for silky consistency.
06 - Return salmon to skillet and gently fold to combine. Remove from heat. Sprinkle with chopped dill or parsley and serve immediately.