Farkas' Lemma is indeed the way to go, but we need the right setting. Below I give a sketch.
For simplicity, assume that we work at a vertex $x=0$ of $P$.
So we want to find a minimal set of generators for the cone $\DeclareMathOperator{\cone}{cone}C:=\cone(P)=\cone (\mathcal V)$, where $\mathcal V\subseteq P$ is the set of vertices of $P$.
What we want to understand is whether every such "minimal generator" $y\in\mathcal V$ is a neighbor of $x$, because if so, then the edge-directions indeed generate $C$.
So, suppose that $y\in \mathcal V$ is part of such a minimal set of generators. Then $y\not\in C':=\cone(\mathcal V\setminus \{y\})$ (here you need to use that no three vertices of $P$ are colinear). By Farkas' Lemma, we can then separate $y$ from $C'$ via a hyperplane. In particular, we can choose this hyperplane with normal vector $n$ so that
$$\def\<{\langle}\def\>{\rangle}\<n,x\>=0,\quad\<n,y\> >0\quad\text{and}\quad\<n,z\><0\text{ for all $z\in \mathcal V\setminus\{x,y\}$}.$$
It is not too hard to argue that we can choose $n$ linearly independent from $y$ (if we are working in dimension $d\ge 2$). Then
$$n':=n-y\frac{\<n,y\>}{\<y,y\>} \not=0.$$
You can check that we have $\<n',x\>=\<n',y\>=0$ and $\<n',z\><0$ for all $z\in \mathcal V\setminus\{x,y\}$ (the latter needs some thought, but is possible). In other words, the hyperplane orthogonal to $n'$ supports $P$ exacty at the two vertices $x$ and $y$, which proves that these form an edge of $P$.
In still other words, $\cone(P)$ is generated by the neighbors of $x$.
Some further explanation
As requested in the comments, I elaborate on $\<n',z\><0$ for all $z\in\mathcal V\setminus\{x,y\}$. As Epiousios noted, this is the same as
$$(*)\quad \underbrace{\<n,z\>}_{<0} < \underbrace{\frac{\<n,y\>}{\<y,y\>}}_{>0} \<y,z\>,$$
which would be obviously true if $\<y,z\>>0$. However, this is not always the case.
But, we can do a trick: before we start with any of our argument, we can tranform our polytope $P$ into an more convenient polytope $P'$, for which any two neighbors $y,z$ of $x=0$ satisfy $\<y,z\>>0$ (meaning $\sphericalangle(y,z)<90^\circ$).
We can do this by stretching $P$ in a certain way. Hopefully, the following image makes this clearer:
Since this is a linear transformation, this changes nothing about the actual problem. But this time $(*)$ is trivially satified.
Best Answer
General: Given a vertex $x_0\in P$ the simplex algorithm computes an optimal vertex $x^*$ which fulfills $c^Tx^*=\max_{y\in P}c^Ty$. In each step, the algorithm moves from vertex to vertex via the edges of the polytope. This yields a sequence of vertices $x_0,x_1,...,x^*$ such that
$c^Tx_0\leq c^Tx_1\leq ...\leq c^Tx^*$
holds.
In this case: Assume there exist vertices $y\notin N_P(x)$, such that $c^T(y-x)\geq 0$ is satisfied. Take a vertex $x^*\neq x$ which maximises $c^Ty$ of all vertices. Therefore, by the simplex algorithm we have a sequence of vertices $x,y_1,...,y_k,x^*$ with $c^Tx\leq c^Ty_1\leq ...\leq c^Tx^*$. Since $x^*\notin N_P(x)$, we have $y_1\in N_P(x)$ with $c^Tx\leq c^Ty_1$ which contradicts $c^T(y_1-x)<0$.