-e is not POSIX (in fact, POSIX echo generally accepts no arguments, see here), and /bin/sh appears to be a POSIX shell. -e is an extension accepted in some shells, but you shouldn't rely on it, it's not portable. Ideally, use printf, or switch to using a shell which has echo -e.
printf '\e[3;12r\e[3H'