Product of vector fields is not a vector field Let $M$ be a manifold and $X,Y$ be vector fields on $M$. The bracket $[X,Y]:=XY-YX$ is a vector field when $X,Y$ are smooth, but why is $XY$ not a vector field when $X,Y$ are smooth?
By definition, a smooth vector field takes a smooth map on $M$ to a smooth map on $M$. So if $f$ is a smooth map on $M$ then $XY(f)$ is $X(Y(f))$ and by hypothesis $Y(f)$ is a smooth map on $M$ so that $X(Y(f))$ is a smooth map on $M$ as well.
 A: $XY$ won't necessarily be a derivation on $M$. For example take $M=\mathbb{R}$, $X=Y=\frac{\partial}{\partial x}$ and $f=g=id_{\mathbb{R}}$. Then $XY(fg)(x)=2$ but $g(x)XY(f)(x)+f(x)XY(g)(x)=0$ for all $x\in\mathbb{R}$.
A: You seem to have some confusion about the definition of a vector field. There are two equivalent ways to define vector fields on a manifold $M$. 


*

*A vector field is a section of the tangent bundle $TM$. i.e. a smooth map $X\colon M \to TM$ with the property that $pr\circ X = id_M$, where $pr\colon TM \to M$ is projection. (Note, this is not precisely the same as the comment you write above or what is written in your question and I believe it is the source of your confusion).

*A vector field is a linear map $X\colon C^\infty(M) \to C^\infty(M)$ with the property that it is a derivation, i.e. $X(fg) = fX(g) + X(f)g$ for all $f,g \in C^\infty(M)$.
To answer your question of why for two vector fields $X$ and $Y$, $XY$ is not a vector field, you should check one of the two definitions. The comment by @Hagen von Eitzen hints to use the second definition (which should be the easier definition to use for this question).  
In particular, the product of vector fields can be defined two ways as well, depending on which definition of vector fields you are using. What you wrote in your post, that $XY(f) = X(Y(f))$ makes sense using definition 2: you are composing two linear maps,
$$ C^\infty(M) \rightarrow^Y  C^\infty(M) \rightarrow^X C^\infty(M).$$
$$ f \, \mapsto\,  Y(f) \, \mapsto \,X(Y(f))$$
Now, to see if this linear map fits definition 2 of a vector field you need to check that...
If you want to translate  to definition 1, you have to do a little bit of work.
