Set an oven rack about 6 inches from heat source; preheat broiler to high.
Warm oil in a large ovenproof nonstick skillet over medium-high heat. Add spinach and cook, stirring, until wilted, about 3 minutes. Add scallions; saute for 1 minute. Stir in ham; saute for 1 minute longer.
Whisk eggs and cheese; season with salt and pepper. Arrange the spinach mixture evenly in skillet and pour egg mixture over. Reduce heat to medium-low and cook without stirring until frittata is almost set in the center, 10 to 12 minutes.
Transfer skillet to broiler and cook, watching carefully to avoid burning, until top is set and golden brown, 1 to 2 minutes. Run a spatula around the edges of the skillet and cut into wedges (to safeguard your pan, you can slide the frittata onto a serving plate before slicing). Serve hot, or allow to cool and serve at room temperature.