O que você quer fazer é dizer a watch
que o comando que está sendo executado deve ter sua saída redirecionada; o que você fez foi redirecionar a saída do watch
.
Tente isto: watch 'sudo jmap -heap 31945 2> /dev/null'
Observe as novas aspas - isso está dizendo watch
que a coisa toda é o comando, não apenas a sudo jmap -heap 31945
parte, e assim watch
ainda é capaz de usar o erro padrão em si (que eu suspeito que seja o causa de suas linhas "perdidas" de saída).