Arrange an oven rack about 4 inches from the broiler and preheat the broiler.
Melt the butter in a small saucepan, over low heat, with the grapefruit zest and juice and simmer for a couple of minutes. Oil a large baking sheet. Sprinkle the fish all over with salt and pepper, including inside the cavities. Put the fish in a single layer on the baking sheet, then stuff the cavities with some of the couscous. Drizzle the fish with some of the grapefruit butter and broil, without turning, until the skin blisters and the fish is cooked through but still translucent at the bone, 12 to 15 minutes.
Baste the fish a couple of times with the remaining grapefruit butter while broiling. Transfer the fish to a serving platter and serve with the remaining couscous and a drizzle of any remaining grapefruit butter.
Bring a large pot of salted water to a boil over medium heat, for the beans. Fill a large bowl with ice water and add enough salt until it tastes lightly salty - this is to refresh your beans. When the water comes to a boil add the beans and cook until just tender, about 3 minutes. Drain and then refresh in the salted ice water. Drain and cut into 1-inch pieces. Set aside.
Meanwhile, pour cold water over the couscous in a medium bowl (using cold water reserves the couscous' grainy, nutty texture). Cover and let stand for 15 minutes. Combine the vinegar, oil, grapefruit zest and juice, fennel and fronds in a large serving bowl. Season with salt and pepper, to taste. Fold in the couscous along with the pine nuts, green beans and olives. Season, to taste, with salt and pepper and finish with a drizzle of olive oil.