In a large skillet, heat olive oil over medium heat. Add the chopped onion and sauté until translucent, about 3 to 4 minutes. Add minced garlic to the skillet and continue to sauté for an additional 20 seconds or until fragrant.
Add in red pepper flakes, smoked paprika, salt, and pepper. Cook for 30 seconds, or until fragrant.
Pour in the chopped tomatoes and turn the heat to medium-low. Simmer, uncovered, until the tomatoes thicken into a sauce, about 10 minutes.
Stir in the fresh baby spinach and mix to combine.
Arrange the mozzarella cheese randomly in the tomato mixture, then with the help of the back of a spoon, create 4 divots in the sauce mixture.
Crack the egg and place it in a small bowl, taking care not to break the yolks. Gently add 1 egg into each hole. Season the eggs with salt and pepper. If you desire soft, runny egg yolks, cover and cook for 3 to 5 minutes; alternatively, for firmer eggs, continue cooking for an additional 2 to 3 minutes.
While the eggs are cooking, toast some bread with butter on a hot pan or griddle. Set aside.
When the eggs are done, top them with fresh dill and parmesan and sprinkle with salt and pepper as desired. Serve with toasted bread.