"Span" is less ambiguous and "generate" is more general.
In the contexts of vectors in a vector space, "generated by" and "spanned by" mean the same thing. However, "generate" can mean various other things (for example generation as a module, as an algebra, as a field, etc.) if there is extra structure on the vector space.
A general definition of generation is as follows: let $e_i$ be elements of some structured set $A$. A subset $B \subset A$ is said to be the structure generated by the $e_i$ if it is the intersection of all substructures of $A$ containing the $e_i$. (The key word here is "substructure": the notion of generation changes depending on what kind of structure one is considering on $A$.) Of course this definition only makes sense if the intersection of substructures of $A$ is another substructure, but this is in my experience true of structures to which the word "generate" are applied.