Mais simples do que você pensa:
$ tar cf small-archive.tar /big/tree --exclude-from <(find /big/tree -size +3M)
Em uma observação semi-relacionada (relacionada à sua afirmação de que você não pode usar o find) para obter uma lista de todos os arquivos (incluindo diretórios) em um caminho menos os arquivos maiores que 3MiB, use:
$ find . -size -3M -o -type d
Você pode então fazer:
$ tar cf small-archive.tar --no-recursion --files-from <(find /big/tree -size -3M -o -type d)
Mas eu prefiro o primeiro, pois é mais simples, expressa claramente o que você deseja e levará a menos surpresas.
find
novamente?