Hmm, why doesn't `fn() echo test; fn` work? It seems to work in zsh, but not bash.
Informally, a compound command is a list of commands (`( ... )` or `{ ... }`) or a looping or conditional construct. See [1] for a precise definition.
[1]: https://tiswww.case.edu/php/chet/bash/bashref.html#Compound-...