Begin by pressing your block of extra-firm tofu. Wrap it in several layers of paper towels or a clean kitchen towel, place it on a plate, and set a heavy object like a cast-iron skillet or several cookbooks on top. Let it press for at least 20 minutes to remove excess moisture.
While the tofu is pressing, prepare the marinade. In a large bowl, whisk together the olive oil, lime juice, minced garlic, chili powder, cumin, smoked paprika, oregano, cayenne pepper (if using), salt, and pepper until well combined.
Once pressed, cut the tofu into 3/4-inch cubes. Slice the bell peppers and red onion into thin strips, cut the zucchini into half-moons, and clean and slice the mushrooms.
Add the tofu cubes and all the prepared vegetables to the bowl with the marinade. Gently toss everything until evenly coated. Let this mixture marinate for at least 20 minutes at room temperature (or refrigerate for up to 24 hours for deeper flavor).
When ready to cook, heat a large skillet over medium-high heat. Working in batches to avoid overcrowding, use a slotted spoon to transfer portions of the vegetable and tofu mixture to the hot pan, leaving excess marinade behind.
Cook each batch for 5-7 minutes, stirring occasionally but not too frequently. Allow the vegetables and tofu to develop caramelization and slight char marks before stirring. Transfer each batch to a clean plate once cooked.
While cooking the final batch, warm the black beans in a small saucepan over low heat with a pinch of cumin, salt, and pepper.
To assemble the bowls, start with a base of warm brown rice, then add a portion of the warmed black beans to one side.
Arrange the fajita vegetable and tofu mixture next to the beans, keeping the components somewhat separate for visual appeal.
Top each bowl with sliced avocado, sprinkle with fresh cilantro, and serve with lime wedges for squeezing over the top just before eating.