Heat a saucepan over medium-high heat. Cook and stir onion until softened, about 5 minutes. Add beef; cook and stir until browned and crumbly, 5 to 7 minutes. Add tomatoes; cook until softened, about 10 minutes. Add eggplant, mushrooms, green bell pepper, zucchini, and garlic. Cook until vegetables soften, 15 to 20 minutes. Mix in tomato sauce, oregano, salt, and pepper.
Melt butter in a separate saucepan over medium heat. Add flour; pour in milk slowly. Season with salt and pepper. Bring bechamel sauce to a boil. Cook and stir until thickened, 5 to 7 minutes.
Preheat oven to 350 degrees F (175 degrees C). Butter a baking pan.
Pour some bechamel sauce into the bottom of the prepared pan. Add a layer of lasagna and a layer of beef sauce; sprinkle some mozzarella cheese on top. Repeat layering until pan is full; sprinkle the remaining mozzarella cheese on top.
Bake in the preheated oven until top is browned and lasagna is heated through, about 2 hours.