Preheat your oven to 375°F (190°C).
In a large skillet, heat the olive oil over medium heat. Add the minced garlic and sauté until fragrant, about 1 minute. Add the shrimp and cook for 3-5 minutes until they turn pink. Remove from heat and set aside.
In the same skillet, add spinach and cook until wilted (if using fresh). If using frozen, heat until thawed and warmed. Mix with the shrimp and set aside.
In a medium saucepan, melt the butter over medium heat. Once melted, whisk in the flour and stir for about 1 minute to make a roux. Gradually add the milk while constantly whisking to avoid lumps. Continue cooking until the sauce thickens, about 5-7 minutes. Season with salt, black pepper, and red pepper flakes (if using).
In a mixing bowl, combine ricotta cheese with 1 cup of mozzarella and half of the Parmesan. Mix well and set aside.
To assemble the lasagna, spread a thin layer of the white sauce on the bottom of the baking dish. Place three lasagna noodles over the sauce. Spread half of the ricotta mixture over the noodles, followed by half of the shrimp and spinach mixture. Add another layer of white sauce over the shrimp.
Repeat the layers with three more noodles, the remaining ricotta mixture, shrimp and spinach, and more white sauce. Top with the last three noodles, the remaining white sauce, and sprinkle the rest of the mozzarella and Parmesan cheese on top.
Cover the baking dish with aluminum foil and bake in the preheated oven for 25 minutes. After 25 minutes, remove the foil and bake for an additional 15-20 minutes or until the cheese is bubbly and golden.
Let the lasagna cool for about 10 minutes before slicing and serving.