Preheat your oven to 375°F (190°C).
Cook the lasagna noodles according to package instructions. Drain and set aside.
In a large skillet, heat olive oil over medium heat. Add the chopped onion and garlic, sautéing until the onion is translucent.
Add the sliced mushrooms to the skillet and cook until softened, about 5 minutes. Add the fresh spinach and sauté until wilted. If using frozen spinach, make sure it is thoroughly heated. Season with salt and pepper. Remove from heat.
In a saucepan, bring the milk to a simmer. Whisk in the flour and continue to whisk until the mixture thickens, about 2-3 minutes. Add nutmeg, salt, and pepper. Remove from heat.
In a mixing bowl, combine ricotta cheese, half of the Parmesan cheese, and half of the mozzarella cheese. Mix well.
To assemble the lasagna, spread a thin layer of the white sauce in the bottom of the baking dish. Layer 4 lasagna noodles, half of the ricotta mixture, half of the spinach and mushroom mixture, and a third of the remaining white sauce.
Repeat the layers: noodles, ricotta mixture, spinach and mushroom mixture, and white sauce. Finally, top with the last layer of noodles, the remaining white sauce, and sprinkle the rest of the mozzarella and Parmesan cheeses on top.
Cover the baking dish with aluminum foil and bake for 25 minutes. Remove the foil and bake for an additional 15 minutes, or until the cheese is bubbly and golden brown.
Allow the lasagna to cool for 10 minutes before serving.