Você precisa -exec de um comando shell:
find . -name "*.txt" -exec sh -c 'tar cfj $(basename "{}" .txt).tb2 "{}"' -- {} \;
Além disso, observe que o comando find está localizando os arquivos em todos os níveis. Como tal, usar basename para passar a lista de arquivos não funcionaria se os arquivos não existissem no diretório atual.
Para elaborar,
tar cfj foo.tb2 foo.txt
resultaria em erros se foo.txt não existir no diretório atual. Como tal, você precisa passar o caminho para foo.txt .