Heat the oil in a saucepan over medium heat. Add the onion, garlic, carrot, and celery. Cook the vegetables until softened, 5 to 7 minutes. Add the tomatoes; cook the vegetables until very tender, about 10 minutes more. Add the tomato paste, molasses, honey, sugar, mustard, cumin, 1 teaspoon salt, 1/ 4 teaspoon black pepper, cayenne pepper, and 2 cups water; stir to combine.
Simmer gently until thickened, about 30 minutes. Transfer to a food processor or blender; puree until smooth. Refrigerate until ready to serve.
Heat a grill or grill pan. Season the fish with the remaining 1 / 2 teaspoon salt and 1/ 4 teaspoon pepper. Brush generously with sauce. Grill until the fish is cooked through, 2 to 3 minutes per side. When the fish is done, remove and discard the skin. Serve over pilaf drizzled with sauce.