Rinse mahimahi and pat dry. Heat 1/2 tablespoon oil in a 10- to 12-inch nonstick frying pan over medium-high heat; when hot, add fish and cook, turning once, until browned on both sides and opaque but still moist-looking in the center (cut to test), 8 to 10 minutes total. Transfer to a shallow 2- to 3-quart glass or ceramic dish.
In the same pan, heat remaining tablespoon oil over medium-high heat; add onion and stir until limp and browned, about 8 minutes. Spoon onion over fish.
In pan, combine vinegar, allspice, peppercorns, bay leaf, garlic, salt, sugar, and 1 1/4 cups water; bring to a boil over high heat. Remove from heat and pour over fish and onion. Let stand until cooled to room temperature, about 15 minutes, then cover and chill at least 8 hours or up to 1 day.
Let come to room temperature. To serve, lift fish from liquid and arrange on a platter. Arrange onion slices on fish. Discard liquid.