Turn on the oven’s broiler. Line a baking sheet with aluminum foil. Lay clean peppers on the foil.
Broil peppers, turning often, until they are blackened on all sides, 5 to 7 minutes, about 5 minutes.
Remove from the oven and carefully place the peppers in a plastic bag. Leave a small opening for steam to escape; cool peppers until they can be handled easily, about 10 minutes.
Remove peppers from the bag. Using a paring knife, remove all the outside skin. Place peppers on a work surface and cut open. Remove all seeds and spine, then dice peppers.
Melt butter in a heavy-bottomed saucepan over medium heat; add peppers and onions. Cook, stirring often, until onions are softened, 5 to 7 minutes. Add the garlic and stir to combine.
Add stock and half-and-half to a large measuring cup. Whisk flour into stock mixture, 1 tablespoon at a time, until no lumps remain.
Slowly add stock mixture to peppers, stirring as you go. Adjust heat if needed; cook, stirring frequently, until sauce has thickened.
Season with salt, pepper and cumin, then taste to adjust. Add lime juice and cilantro, then stir and taste to see if it needs more seasoning.
Sauce can be served chunky, or use an immersion blender to blend until smooth. Serve hot or warm.