I wouldn't say specifically Flex/Bison. There are any number of lexer and parser generators that can be used. Many of the new-ish tools, especially those using recursive descent, combine lexer and parser generation.
agreed, though personally I have typically used hand-written recursive descent.
usually IME, the logic that comes after parsing is a lot more work than the parser itself.
my experience here (implementing/using a custom script language):
a lot of work over a lot of years, and all these years later, what I have is, at-best, mediocre...
though, granted, it does basically what I want out of it, so is "mostly good enough".
it does light duty scripting stuff basically ok, but isn't really solid enough to seriously consider as an implementation language.
one sad thing in life is that pretty much anything a person can do, someone else has likely already done better, so it is a choice whether to reuse what others' have done (and try to figure out ultimately what they can do for themselves, *1), or sit around and basically play catch-up.
what merit there is then is mostly in terms of customization or control, or aiming for unconventional use-cases (competing on unconventional metrics, ...).
*1: while pretty much everything has already been done, unless a person does something, they effectively still have nothing.
like, if a person goes and downloads some FOSS game off the internet, everything has already been written, assets created, ... but the person has, themselves, not created anything (and has no natural ownership or control over any of it).