Melt butter in a large skillet over medium heat. Add diced onion and cook for 2 minutes.
Add minced garlic and cook 1 minute more.
Add the shrimp and cook 2 to 3 minutes, just until they turn pink; they should be slightly undercooked. Remove shrimp with a slotted spoon and set aside, leaving as much of the onion and garlic in the pan as possible.
Add tomato paste to the skillet and stir it into the onion and garlic.
Add the drained fire-roasted tomatoes, chopped chipotle peppers in adobo, fresh orange juice, and Cholula hot sauce; cook about 5 minutes to meld the flavors.
Return the shrimp to the skillet and stir to coat in the sauce. Continue to cook for about 2 minutes so the shrimp finish cooking and absorb the sauce.
Garnish with chopped cilantro.