Preheat oven: Set to 375°F.
Cook the beef: Heat 1 tablespoon oil in a large pot over medium heat. Add beef and cook until browned. Transfer to a colander to drain excess fat.
Build the sauce: Add remaining oil to the pot. Sauté onion until golden and soft, about 10 minutes. Add garlic, cooking 1 minute until fragrant. Stir in carrots and mushrooms; cook until mushrooms release liquid and it evaporates, about 10 minutes. Add crushed tomatoes, oregano, basil, red pepper flakes, salt, pepper, and the beef back to the pot. Simmer gently on low while preparing the remaining components.
Make the ricotta mixture: In a food processor, pulse ricotta, parmesan, and spinach until smooth. Season with salt and pepper to taste.
Prepare pasta: Cook lasagna noodles per package directions until al dente. Drain and set aside.
Assemble the lasagna: Spread a thin layer of sauce on the bottom of a large casserole dish. Layer half the pasta noodles, followed by ¼ spinach ricotta mixture, ¼ sauce, and half the zucchini noodles (season zucchini lightly with salt and pepper). Repeat with another ¼ ricotta mixture and ¼ sauce. Add the remaining pasta noodles, another ¼ ricotta, ¼ sauce, the other half of zucchini noodles, then the final ¼ ricotta and ¼ sauce. Top with mozzarella and fresh basil.
Bake: Cover with foil, place dish on a rimmed baking sheet, and bake 45 minutes until hot and bubbly.
Rest & serve: Allow to rest 15 minutes before slicing.