Preheat the oven to 350°F (175°C). Grease an 8×11-inch oven-safe casserole dish and set aside.
Prepare the lasagna noodles according to the package instructions: either use as-is if they are no-boil sheets or boil until al dente if required; drain and set aside.
Make the spinach-basil pesto: toast the walnuts in a small skillet over medium-low heat 3–5 minutes until lightly browned and fragrant. Transfer to a food processor.
Add basil, spinach, olive oil, lemon zest and juice, salt, pepper, minced garlic, red pepper flakes, and water to the food processor with the toasted walnuts; puree until smooth, adding more water a tablespoon at a time if needed to reach a spreadable consistency.
Assemble the first layer: spread 1/2 cup of the pesto over the bottom of the prepared dish. Add a single flat layer of lasagna noodles (cut to fit if necessary). Spread half of the ricotta over the noodles, dollop with 1/4 cup pesto, and sprinkle with 1/4 cup of the mozzarella.
Assemble the second layer: add another flat layer of noodles, spread the remaining ricotta over them, top with half of the remaining pesto, and sprinkle with half of the remaining mozzarella.
Top layer: add the final layer of noodles, spread the remaining pesto over the noodles, sprinkle with the remaining mozzarella, and arrange the halved cherry tomatoes cut-side down across the top.
Cover the dish with aluminum foil and bake at 350°F for 30 minutes. Remove the foil and bake an additional 5 minutes until the cheese is melted and bubbly.
Let the lasagna rest 5 minutes, run a spatula around the edges to loosen, then cut into portions and serve.