The -f option is for loading non-module files, which is an old and mostly obsolete manner of using Racket. So what your commands did is load your file's module declaration... but then nothing told Racket to actually require (instantiate) the module, so Racket just exited.
You can use the -t option instead:
racket -t hello.rkt
gracket -t hello.rkt
Or you can just omit it; this also works:
racket hello.rkt
gracket hello.rkt
The two are slightly different in how they process command-line options after the module file name: in the -t version Racket tries to process any subsequent options in the command line (up to a --), but in the second version, Racket just forwards all of subsequent options to your program.