Earlier quoted context omitted.
In this context... "specialized" = Do one thing "flexible" = and do it well. That said, the key ingredient of the Unix philosophy that is missing isn't specialised, flexible tools, it's composability of those tools. Imagine if you couldn't pipe grep output to another program, wouldn't it be a lot less useful? I'd say so. There are ways we can get around this, but they would require a fair amount of development time.…
How does flexible mean do it well? "Do it well" is so vague of a saying that it really could mean any of those things, whether it be flexibility, or simplicity, or etc.
Think about how programs become bloated. What helps the core Unix command line tools avoid this fate?