In a large skillet, heat the olive oil over medium heat. Add the chopped onion and sauté until translucent, about 5 minutes. Stir in the garlic and cook for another minute until fragrant.
If using fresh spinach, add it to the skillet and cook until wilted. If using frozen spinach, add it directly and allow it to heat through. Season with salt, pepper, and nutmeg. Remove from heat and set aside.
In a mixing bowl, combine the pumpkin puree, ricotta cheese, sage, salt, and pepper. Mix until smooth and well combined.
In the same skillet, add the heavy cream and broth. Bring to a simmer, then lower the heat and stir in half the mozzarella and half the parmesan cheese until melted. Taste and adjust seasoning with salt, pepper, and red pepper flakes if desired.
In a large baking dish, spread a thin layer of the cream sauce on the bottom. Layer 3 lasagna noodles evenly over the sauce. Spread half of the pumpkin mixture over the noodles, followed by half of the sautéed spinach. Pour a layer of the cream sauce over the spinach.
Repeat the layering process: noodles, pumpkin mixture, spinach, and sauce until all ingredients are used, finishing with a layer of noodles on top. Pour the remaining cream sauce over the top and sprinkle with the remaining mozzarella and parmesan cheese.
Cover the baking dish with foil (to prevent sticking, either spray the foil with cooking spray or use parchment paper). Bake in the preheated oven for 30 minutes. Remove the foil and bake for an additional 15-20 minutes, or until the top is golden and bubbly.
Let the lasagna cool for 10-15 minutes before slicing and serving.
Notes
Optional red pepper flakes can be added for spice.