An advantage is that there are less portability concerns when writing
tests. For example, -u is not supported by all implementations of
env, but lit's internal shell provides its own env that supports
-u.
A disadvantage is that some shell constructs, such as parentheses, are
not supported, but FileCheck's test suite currently doesn't require
such constructs.
For comparison, lit configures its test suite in the same manner. See
llvm/utils/lit/tests/lit.cfg.