- Zest grapefruit and orange and set aside. Segment grapefruit and orange (working over a bowl to preserve juice). Gently strain segments, reserving segments and juice in separate bowls.
- Add ½ teaspoon of salt, vinegar, dijon mustard, and 1 tablespoon water to the bowl with juice. Whisk to combine. Slowly drizzle in olive oil, whisking to emulsify.
- To a shallow roasting pan, add canola oil and asparagus. Season with remaining salt and black pepper. Transfer to a gas or charcoal grill over a hot fire and cook, uncovered (in batches if necessary), turning as asparagus blackens, about 6 minutes total. (Note: If your grill grate might allow asparagus to fall into the grill, use a perforated grill pan.) Cook, partly covered, for 3 to 4 minutes. When all the asparagus is nicely charred, transfer to a serving platter.
- Scatter citrus segments evenly over asparagus and drizzle with dressing. Garnish with zest and serve.