The problem is that the first close bracket, "]" is being recognized as the ending delimiter for the split[...] operator. The result is that the second close bracket is left behind as invalid filter syntax.
A workaround is to define a variable that contains the text of the parameter for the split operator and then use the variable reference in the filter, rather than the literal [...] syntax.
Something like this:
<$vars closebracket="]">
{{{ [{!!field}split<closebracket>join[ ]] }}}
</$vars>
-e