Different approaches for partial image derivation
Non-zero pixels after derivation provide you with two informations: a potential location (where the pixel is), and a potential strength (in magnitude) of an edge-pixel. Linear edge detectors are linear filters. A $3\times3$ kernel adds a smoothing effect in the orthogonal direction. It will favor edges with a certain spatial extend, over short-lengthed isolated pixels that do not qualify for real-edges. In other words, an isolated $[0,1,0]^T$, a duplet $[1,1,0]^T$ will be affected a smaller magnitude than three vertical ones $[1,1,1]^T$ after a $3\times3$ kernel. 

In different words, the Prewitt  $3\times 3$ separable gradient/smoothing kernel can be written as a (Cartesian) product of two $3\times 1$ and $1\times 3$ kernels:

$$
\left(
\begin{matrix}
 1 &amp; 0 &amp; -1 \\
 1 &amp; 0 &amp; -1  \\
 1 &amp; 0 &amp; -1 \\
\end{matrix}
\right) = 
\left(
\begin{matrix}
 1  \\
 1   \\
 1 \\
\end{matrix}
\right) \times \left(
\begin{matrix}
 1 &amp; 0 &amp; -1 \\
\end{matrix}
\right) 
$$

This scheme can be generalized: any smoothing filter in one direction, combined with any derivative in the other (orthogonal) direction, can form an horizontal or vertical square/rectangular image edge detector.  You can find a source in Smoothed Differentiation Filters for Images, Meer and Weiss, 1992:


  For the two-dimensional case we restrict ourselves to square
  neighborhoods. In such neighborhoods it is always possible to define a
  separable two-dimensional orthonormal basis built by the Cartesian
  product of two identical one-dimensional bases.


and in Derivative-based Operations or the wiki page Image derivatives
.

If you have clear vertical edges, with same pixel amplitudes, little noise, the $1\times 3$ filter will do the job. Otherwise, good $3\times 3$ are almost always preferable. An image is really a 2D thing, and processing it through 1D tools often wastes information.