Preheat the oven to 375 degrees F.
Cook the pasta shells according to the package directions, but do not cook longer than 10 minutes. It will be slightly more firm than al dente, but the pasta will finish cooking in the oven. Drain and set aside when ready.
Heat a small amount (one teaspoon is fine) of olive oil in a large skillet. Add the spinach and cook over medium heat until completely wilted, about 4 minutes. Set aside.
Zest the lemon.
Add the ricotta cheese to a large bowl.
Beat the egg into the ricotta cheese.
Stir the lemon zest and 1/2 cup of the Parmesan cheese into the egg and ricotta mixture. Sprinkle lightly with salt.
Squeeze the excess liquid from the spinach and add it to the ricotta mixture.
If the pasta mixture is still too hot to handle, rinse with cold water. Shake off the excess water before using.
Spray a 9x11 inch baking dish with nonstick cooking spray.
If you are using the piping bag, you can either use a round tip or just cut off the end. I generally use a large spoon.
Fill the pastry bag with the ricotta and spinach mixture (if using).
Hold the pasta shell in the palm of one hand with the opening at the top.
Fill the shell with the cheese and spinach mixture, about 1 to 1 1/2 tbsp each.
Arrange the filled pasta shells in the prepared pan with the opening facing up.
Pour the sauce over the top of the filled shells.
Sprinkle the remaining Parmesan cheese and the shredded mozzarella evenly over the entire dish.
Cover with aluminum foil.
Bake for 25 minutes. Remove the foil and finish cooking for 10 minutes until the cheese is melted and the sauce bubbly.