In a small bowl, mix together olive oil, chili powder, cumin, garlic powder, onion powder, lime zest, lime juice, salt, and pepper to create a marinade.
Place the flank steak in a shallow dish and pour the marinade over it. Cover and refrigerate for at least 30 minutes, or up to 2 hours for maximum flavor.
Preheat a grill or skillet over medium-high heat. Remove the steak from the marinade and let any excess drip off (reserve the marinade for later use).
Grill the steak for 6-8 minutes per side, or until it reaches your desired level of doneness (medium-rare is ideal). Remove from heat and let it rest for 5 minutes before slicing thinly against the grain.
In the same grill or skillet, add the sliced bell pepper and red onion. Sauté for about 5-7 minutes until they are tender and slightly charred.
In individual bowls, start layering: add a scoop of cooked rice, followed by black beans, sautéed vegetables, and sliced steak.
Top each bowl with sliced avocado, a sprinkle of fresh cilantro, and a dollop of sour cream or Greek yogurt if desired.
Drizzle any leftover marinade over the top for an added kick of flavor.