Mais simples do que você pensa:
$ tar cf small-archive.tar /big/tree --exclude-from <(find /big/tree -size +3M)
Em uma nota semi-relacionada (relacionada à sua declaração que você não pode usar encontrar) para obter uma listagem de todos os arquivos (incluindo diretórios) em um caminho menos os arquivos maiores que 3 MiB, use:
$ find . -size -3M -o -type d
Você poderia 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 como é mais simples, claramente expressa o que você quer e vai levar a menos surpresas.