Question: I am wondering what the point of `sh` being symbolic linked to `dash` is? I understand that `dash` is supposed to be faster than `bash`, but I am uncertain why the original `sh` shell isn't present in `sh`. 

Or if anything why isn't `sh` linked to `bash`?

Answer: 
Speed and POSIX compliance ( in other words, portability) are the main factors. Remember that `/bin/sh` is meant for system scripts, which may or may not have come from older versions of Ubuntu and/or other systems. 

Sure, shiny features of `bash` are cool to use for us users, but when it comes to running thing in environment where you have to manage several different servers/systems - having POSIX compliant shell makes whole lot of difference. Especially, if you're a new sysadmin and inherited environment with many scripts.

As for why original Bourne shell isn't present, it is simple - it is a proprietary product originally owned by AT&T Bell Labs. 

Also, there's actually an explicit explanation on Ubuntu wiki about that:

> 
> Why was this change made?
>  The major reason to switch the default shell was efficiency. bash is an excellent full-featured shell appropriate for interactive use; indeed, it is still the default login shell. However, it is rather large and slow to start up and operate by comparison with dash. A large number of shell instances are started as part of the Ubuntu boot process. Rather than change each of them individually to run explicitly under /bin/dash, a change which would require significant ongoing maintenance and which would be liable to regress if not paid close attention, the Ubuntu core development team felt that it was best simply to change the default shell. The boot speed improvements in Ubuntu 6.10 were often incorrectly attributed to Upstart, which is a fine platform for future development of the init system but in Ubuntu 6.10 was primarily running in System V compatibility mode with only small behavioural changes. These improvements were in fact largely due to the changed /bin/sh.
> 
> 
> 

And here's a note about portability:

> 
> The Debian policy manual has long mandated that "shell scripts specifying '/bin/sh' as interpreter must only use POSIX features"; in fact, this requirement has been in place since well before the inception of the Ubuntu project. Furthermore, any shell scripts that expected to be portable to other Unix systems, such as the BSDs or Solaris, already honoured this requirement. Thus, we felt that the compatibility impact of this change would be minimal.
> 
> 
> 

See <https://wiki.ubuntu.com/DashAsBinSh>
`/bin/sh` is linked to `/bin/dash` for what I believe is compatibility reasons. Many scripts simply start with 

```
#!/bin/sh

```

so by moving to `dash` and not making a symbolic link, a lot of scripts would fail to run properly(or at all) if `/bin/sh` didn't exist at all.

The change was made from `bash` to `dash` because according to <https://wiki.ubuntu.com/DashAsBinSh>:

> 
> The major reason to switch the default shell was efficiency. bash is an excellent full-featured shell appropriate for interactive use; indeed, it is still the default login shell. However, it is rather large and slow to start up and operate by comparison with dash. A large number of shell instances are started as part of the Ubuntu boot process. Rather than change each of them individually to run explicitly under /bin/dash, a change which would require significant ongoing maintenance and which would be liable to regress if not paid close attention, the Ubuntu core development team felt that it was best simply to change the default shell.
> 
> 
> 

`sh` is not linked to `bash`, because

> 
> The Debian policy manual has long mandated that "shell scripts specifying '/bin/sh' as interpreter must only use POSIX features"
> 
> 
> 

If you want to use `bash` as `/bin/sh`:

> 
> If the problems are more widespread and you want to change the default system shell back, then you can instruct the package management system to stop installing dash as /bin/sh:
> 
> 
> 

```
sudo dpkg-reconfigure dash

```

There are some features that `dash` provides that bash does not, as:

> 
> there is even an outside chance that there are a few scripts that now depend on some feature of dash that bash does not provide!
> 
> 
>