Hello,
You'll find some useful information on: https://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.4.2/bk_dataintegration/content/beeline-vs-hive-...
Essentially beeline would use the JDBC/Thrift (or alternatively HTTP) protocol to communicate with HiveServer2.
HiveServer2 then handles the hive logic (finding the table definition in the metastore, reading the data from HDFS, etc).
On the other hand, the hive shell access directly the Hive metastore and HDFS data, and bypasses HiveServer2.
The big influence that this difference can have in your situation is security.
Hive security is implemented in HiveServer2, thus Hive shell bypasses any Hive access policies you might have set on specific databases using Ranger or SQL based authorization (only HDFS policies apply in this case).