In a large bowl or zip-top bag, combine all the marinade ingredients. Add the flank steak and toss to coat evenly. Cover and marinate in the refrigerator for at least 2 hours, or overnight for best results.
Remove the steak from the refrigerator 30 minutes before grilling. Heat a grill to medium-high heat and oil the grates. Remove the steak from the marinade and pat dry with paper towels. Season generously with kosher salt and pepper on both sides.
Place the steak on the grill and cook for 4 to 6 minutes per side, turning 90 degrees halfway through each side to create crisscross grill marks. Cook to medium-rare (130 to 135 degrees F) or medium (135 to 145 degrees F) depending on your preference. Transfer to a cutting board and let rest for 10 minutes.
While the steak rests, whisk together the olive oil, lemon juice, shallot, garlic, salt, and pepper in a large bowl. Add the romaine leaves and toss gently to coat. Set aside.
Make the salsa verde: In a food processor, combine the herbs, garlic, red wine vinegar, and capers. Pulse until coarsely chopped, about 20 seconds. Transfer to a small bowl and stir in the olive oil. Season generously with salt and pepper.
Slice the flank steak thinly against the grain and arrange on a large board alongside the romaine salad. Serve with the salsa verde on the side.