Yes. Forking is spelled `&`:

 echo child & echo parent

What's confusing you is that `$$` is not the PID of the shell process, it's the PID of the *original* shell process. The point of making it this way is that `$$` is a unique identifier for a particular instance of the shell script: it doesn't change during the script's execution, and it's different from `$$` in any other concurrently running script.

One way to get the shell process's actual PID is `sh -c 'echo $PPID'`.

`&` and `$$` exist and behave this way in every Bourne-style shell and in (t)csh. `$PPID` didn't exist in the orignal Bourne shell but is in POSIX (so it's in ash, bash, ksh, zsh, …).