Cook noodles: Boil lasagna noodles according to package directions if not using no-boil. Drain and set aside.
Make the sauce: In a large skillet, heat olive oil. Sauté onion and garlic until fragrant (2–3 minutes). Add squash cubes and cook until tender, about 10 minutes. Stir in pumpkin purée, milk, broth, nutmeg, paprika, salt, and pepper. Simmer 5 minutes, then blend with an immersion blender until smooth and creamy.
Cook the beef: In another skillet, heat olive oil. Add ground beef, Italian seasoning, salt, and pepper. Cook until browned, about 7 minutes. Drain excess fat if needed.
Prep ricotta layer: In a bowl, mix ricotta with egg and a pinch of salt.
Assemble lasagna: Spread ½ cup pumpkin-squash sauce on the bottom of a greased 9x13 baking dish. Layer 3 noodles, Repeat 2 more times. ⅓ of ricotta, ⅓ of beef, ⅓ of spinach (if using), ⅓ of sauce, and ⅓ of mozzarella.
Finish with noodles, remaining sauce, mozzarella, and Parmesan.
Bake: Cover with foil and bake at 375°F (190°C) for 30 minutes. Remove foil and bake 15–20 more minutes, until golden and bubbly.
Rest & serve: Let rest 10 minutes before slicing. Garnish with fresh sage or parsley.