whereis command tells you where the binary and all documentations are located of a command. But not all commands have some binary that is invoked whenever they are executed. Some commands are shell built-in. Since Ubuntu uses bash as its default shell, these Bash Builtins are present.
The easiest way to determine whether a command is an alias or invokes some binary or is a command provided by the shell, is using type (which itself is also a shell built-in command) with -a option.
For example, if you use
whereis cd
You'll observe that there is no output which may convince you that cd is some magical thing which isn't present in /usr/bin. But cd is a shell built-in command. And if you run
type -a cd
You'll get
cd is a shell builtin
If you try it yourself, you'll find that rm does have a binary in /bin.
But there are some exceptions. echo is the example.
If you run
type -a echo
You'll get
echo is a shell builtin
echo is /bin/echo
That means there is both an echo shell built-in command and an external command in /bin/echo. The reason is described in Eliah Kagan's answer and muru's answer.
ls is another exception. By default ls is an alias to ls --color=auto as well. The output of type -a ls will look like:
ls is aliased to `ls --color=auto'
ls is /bin/ls
This alias is defined in ~/.bashrc. If this alias is "unaliased", ls would invoke the binary located in /bin.