Preheat your oven to 375°F (190°C). Lightly grease a 9×13-inch baking dish.
Heat olive oil or butter in a large skillet over medium heat. Add the onion and cook until soft, about 3 minutes. Add garlic and cook for 1 minute.
Stir in the mushrooms and cook until browned and any liquid has evaporated, about 7-8 minutes.
Add the spinach, thyme, salt, and pepper. Cook until the spinach is wilted. Remove from heat and set aside.
In a medium saucepan, melt the butter over medium heat. Add the flour and whisk continuously for 1-2 minutes to create a roux.
Gradually add the warm milk, whisking constantly to prevent lumps. Cook until the sauce thickens, about 5-7 minutes. Season with nutmeg (if using), salt, and pepper. Remove from heat.
Spread a thin layer of béchamel sauce on the bottom of the baking dish. Layer 3-4 lasagna noodles on top, slightly overlapping. Spread 1/3 of the spinach and mushroom mixture over the noodles, followed by 1/3 of the béchamel sauce. Sprinkle with 1/3 of the mozzarella and Parmesan cheese.
Repeat the layers two more times, finishing with a layer of béchamel sauce and a generous topping of cheese.
Cover the lasagna with foil and bake for 25 minutes. Remove the foil and bake for an additional 15 minutes, or until the top is golden and bubbly.
Let the lasagna rest for 10 minutes before slicing. Serve warm.