Use pv -f or pv --force and it will work the way you expect it to. Quoting the man page for pv:
-f, --force Force output. Normally, pv will not output any visual display if standard error is no a terminal. This option forces it to do so. I don't know if this was an option three+ years ago when this question was posed, but it works now.
With this in my Dockerfile like so:
RUN echo "Lorem ipsum dolor sit amet, consectetur adipiscing elit." | pv -f -L 5 -s56s57 > /dev/null I get the following as an example output along the way:
Step 3/3 : RUN echo "Lorem ipsum dolor sit amet, consectetur adipiscing elit." | pv -f -L 5 -s56s57 > /dev/null ---> Running in 57c657f93610 25.0 B 0:00:05 [5.21 B/s] [==============> ] 44% ETA 0:00:06 ... also, to get the "100%" right, you either need to run pv -s57 or echo -n to suppress the newline.