Because the error message formatting is being done [at the `command.coffee` level](https://github.com/epidemian/coffee-script/blob/5da7f6a4888d63a41259c18d9691316c65ffedec/src/command.coffee#L145). The advantage of doing it there is that it catches the errors for all `coffee --tokens`, `coffee --nodes` and `coffee --compile` (with the try/catch here, instead, only the errors of `coffee --compile` get the filename information).