Os filtros funcionam com dados de amostra brutos e produzem o mesmo. A decodificação ocorre antes que os dados sejam enviados para os filtros e a codificação ocorre após a conclusão de toda a filtragem. Portanto, se o filtro não modificar uma parte dos dados, essa parte permanecerá intacta.
Em seu comando, você está enviando para MP3, então isso força uma nova codificação. Você pode evitar isso enviando para um WAV,
ffmpeg -i 0.mp3 -i 1.mp3 -vn -filter_complex acrossfade=d=10:c1=tri:c2=tri out.wav
Você pode enviar para MP3 durante o comando final de crossfade.
Você também pode realizar todos os crossfades em uma chamada.
Exemplo com 4 arquivos,
ffmpeg -i 0.mp3 -i 1.mp3 -i 2.mp3 -i 3.mp3 -vn
-filter_complex "[0][1]acrossfade=d=10:c1=tri:c2=tri[a01];
[a01][2]acrossfade=d=10:c1=tri:c2=tri[a02];
[a02][3]acrossfade=d=10:c1=tri:c2=tri"
out.mp3