Bring a large pot of salted water to a boil. Add 1 pound penne and cook according to package directions until al dente. Before draining, reserve 1 cup of the starchy pasta water, then drain the pasta and set aside.
Preheat your broiler to high and position an oven rack 6–8 inches from the heat source. Use a large oven-safe skillet (cast iron) for the next steps.
Heat 1 tablespoon olive oil in the skillet over medium heat. Add 2 diced shallots, season with a pinch of kosher salt and pepper, and cook, stirring often, until softened, about 3 minutes.
Add 8 ounces fresh baby spinach to the skillet (add in batches if needed). Stir and cook until the spinach is fully wilted, about 5–6 minutes. Add 4 minced garlic cloves and cook, stirring, until fragrant, about 30 seconds.
Add 8 ounces cream cheese (at room temperature) to the skillet and stir until it melts and forms a smooth sauce.
Pour in about 3/4 cup of the reserved starchy pasta water, stirring to combine and loosen the sauce. Reserve the remaining pasta water in case you need to thin the sauce further.
Add the cooked penne, the drained and coarsely chopped artichoke hearts (both jars), 8 ounces shredded mozzarella, and 1 cup freshly grated Parmesan to the skillet. Reserve a little of the shredded cheeses for topping. Stir until the pasta is evenly coated and the cheeses are mostly melted. Taste and adjust seasoning with salt and pepper if needed.
Evenly sprinkle the reserved shredded cheese over the top of the pasta in the skillet.
Place the skillet under the preheated broiler for 2–3 minutes, watching constantly, until the top is golden and bubbly. If needed, broil an additional 1–2 minutes, but watch carefully to prevent burning.
Remove the skillet from the oven and let cool for a few minutes. Serve immediately, sprinkling additional Parmesan over each portion if desired.