I use both options depending on the needs of the project. Here is my trick:
better (very ambiguous)
In this case, I would better define a product / function that would provide me with a way to create a solution with less code to write, fewer runtime errors, and more features.
In this aspect, the Entity Framework (EF) gives me Insert / Update / Delete instructions, strongly typed models, and a way to create dynamic strongly typed sql statements.
faster
EF is slower, and depending on your experience / knowledge, it can be hundreds of times slower. With the right knowledge of how to use EF, the speed difference is negligible.
safety
Neither ADO nor EF provide any security features (as far as I know). Security is usually controlled by presentation (IIS, Winforms, etc.) and / or on the SQL server.
The only serious limitation that I found using EF (and maybe I did not find a solution) is the impossibility for it of syntax update records like:
UPDATE [sometable] SET [column1] = 'new value' WHERE [column2] = 'shared ID value'
Where, depending on the reuse of this method, I either use SqlCommand or write a stored procedure.
Update from 1st comment
With respect to stored procedures, the Entity Framework (EF) infrastructure is currently very mature, and not only Store procedures are called from EF, but each model data method (Select, Insert, Update, Delete) can be associated with a Saved procedure. I personally have not done this, but it is definitely part of the framework.
Regarding the call to a stored procedure from a security point of view, the security of stored procedures is stored on the SQL server. If it cannot be called from EF, then it cannot also be called from SqlCommand.