Bring a large pot of salted water to a boil. Cook pasta shells according to the instructions on the package. Drain, rinse in cold water, and set aside.
Heat olive oil in a large skillet on medium high heat. Add the onions and cook until softened, a few minutes. Add sausage to the pan, breaking up the sausage into smaller bits. Cook sausage about 5 minutes, until cooked through, and no pink remains. Add the garlic and cook until fragrant, about 1 minute. Remove pan from heat.
In a bowl, combine diced tomatoes and sauce and Italian seasoning. Spread half of the diced tomatoes into the bottom of a 9×13 baking dish.
In a large bowl, beat the egg lightly. Mix in the ricotta, chopped spinach, 1/2 cup of the Parmesan cheese, parsley, salt, pepper, and sausage mixture. Fill each cooked pasta shell with some of the ricotta, spinach, sausage mixture. Arrange the stuffed shells in the baking dish. Spread remaining diced tomatoes over the pasta and sprinkle with mozzarella cheese.
Heat oven to 375°F. Cover baking pan with aluminum foil and bake for 25 minutes. Remove foil, sprinkle with remaining Parmesan cheese and bake uncovered an additional 10 minutes.