Preheat broiler and set rack about 6 inches from heat source.
Warm oil in a large, ovenproof nonstick skillet over medium-high heat. Add onion and pepper and cook, stirring, until softened, about 3 minutes. Stir in ham and sauté 1 minute.
Whisk eggs with salt and pepper until smooth and blended. Pour evenly over mixture in skillet. Place skillet over medium-low heat and cook, shaking often, until frittata is almost set in center and lightly browned on bottom, 10 to 12 minutes. Sprinkle cheese over top.
Transfer skillet to broiler and cook, watching carefully to avoid burning, until cheese is bubbly, 1 to 2 minutes. Cut into wedges and serve hot or at room temperature.