Na realidade quem está produzindo o resultado assim é o programa bc e não encontrei nada sobre formatação dos resultados na documentação do bc:
http://www.gnu.org/software/bc/manual/html_mono/bc.htmlVocê pode usar o awk para fazer isso:
#!/bin/bash
v1=0.400
fp=`echo $v1*2 | bc`
echo $fp | awk '{ printf "%1.3f\n", $1 }'
mas o awk também poderia fazer essa continha simples que vc fez SEM USAR o bc:
#!/bin/bash
v1=0.400
fp=`echo $v1*2`
echo $fp | awk '{ printf "%1.3f\n", $1 }'