There are differences between interactive and scripted mode for the shell.
When you run JavaScript in the shell the cursor returned by a find() query is automatically iterated:
The db.collection.find() method returns a cursor. To access the documents, you need to iterate the cursor. However, in the mongo shell, if the returned cursor is not assigned to a variable using the var keyword, then the cursor is automatically iterated up to 20 times to print up to the first 20 documents in the results.
If you run the same JavaScript in scripted mode (i.e. passing via command line options like --eval), you need to explicitly iterate the cursor and print the results using print() or printjson():
mongo myDB --quiet --eval 'printjson(db.myUserDocColl.find({"_id" : ObjectId("55fd20104ead737a83540a91")},{name:1,email:1,mobileNumber:1,"_id":0}).toArray())'
I also added the --quiet option to the this example command line, which removes extra output that often isn't wanted for a script (eg. the shell version header and "connecting to..." message).