The main issue with your command is that when you execute
watch jq -r '.' "$(ls -t | head -1)"
... then the command substitution is executed once, as part of evaluating the command line arguments for the watch command.
You must stop the current shell from evaluating the command substitution when launching watch to have watch run a command that evaluates the substitution each time the command is run.
You can do that with
watch 'jq -r . "$(ls -t | head -1)"'
The most recently modified regular file (possibly symbolically linked) in a directory is given by the filename globbing pattern *(.om[1]) in the zsh shell. The parenthesis qualifies the way that the preceding * matches names; The dot selects exclusively regular files (possibly symbolically linked), om orders (o) by last-modified timestamp (m), and [1] picks out the first name only from the generated list.
Another way to write your command would therefore be
watch -x zsh -c 'jq . *(.om[1])'
Here, the -x causes watch to exec the given command instead of running it with sh -c.