Yes it is normal and it should be. The reason behind missing file is, when you create new Laravel project, it includes .gitignore file in the root directory of the project, where .env file lies.
in .gitignore file you can see that there is an entry of .env file, and hence git ignores it while commit.
The reason behind this is, .env file contains secret / sensitive data, e.g. database details, username, password etc. Hence for security reason also .env file should not be checked in.
Also while you are on local development, obviously environment should be of local while on production it should be for production.
Best practice is, creating .env file on the server itself. As far as your .gitignore file contains entry of .env, in future deploy also not override the file on the server
see more details in http://laravel.com/docs/5.1#environment-configuration