For the crust: Mix the masa with the broth in a large bowl and stir to combine. In a mixer, beat the shortening, butter, baking powder and salt. Add the masa mixture to the mixer bowl in 3 additions and beat until combined and soft. Cover and refrigerate while you make the filling.
For the filling: In a large skillet over medium-high heat, add the oil. Cook the beef, breaking up any lumps, until it is no longer pink, 8 to 10 minutes. Remove to a bowl using a slotted spoon. Remove all but 1 tablespoon of the grease from the skillet.
Add the onion, bell pepper, jalapeno and poblano to the skillet and season with the chili powder, cumin, salt and pepper. Cook until just beginning to brown. Add the garlic and cook for 1 minute. Add the tomatoes, broth and tomato paste and bring to a boil. Add the beans and return the meat to the skillet. Bring to a simmer and simmer for about 20 minutes.
Preheat the oven to 400 degrees F.
Grease a 10-inch cast-iron skillet with butter. Line the skillet with a little over half of the masa mixture and press. Add the filling, then spoon the rest of the masa mixture over the top. Bake until the top is golden brown, 25 to 30 minutes.
This dish can be made a day ahead and refrigerated. Cooking time from the fridge is 45 to 50 minutes.