You need to use parens:
In a Perl regular expression, parens create what are referred to as "sub-expressions". The sub-expressions are what get assigned to the $1, $2, ... variables.
rename -n 's/(\S)-(\S)/$1 - $2/' *
Btw, the above expression won't work if there's whitespace on one side of the dash and not the other (e.g. a file named "foo- bar"). You might prefer to use:
The above code will eat up whatever whitespace is on either side of the dash and replace that with "<space>-<space>". And it will also work for filenames where there is no whitespace around the dash.
rename -n 's/\s*-\s*/ - /' *