Heat oil in a large skillet over medium heat, add onions, and cook, stirring occasionally, until onions are fragrant and slightly soft, about 2 minutes. Add snapper, skinned side up, and cook until lightly golden, about 2 minutes. Turn fish and cook other side another 2 minutes.
Add wine, tomatoes, olives, half the parsley, and red pepper flakes to the pan with the fish. Season to taste with salt and bring to a simmer over medium heat. Reduce heat to medium-low and simmer, partially covered, until fish is just cooked through, 10–15 minutes, spooning sauce over fish as it cooks. Uncover and simmer until sauce has thickened slightly, about 3 minutes. Adjust seasonings and sprinkle with remaining parsley.