Objects constructed using FreeModule don't seem to have a tensor product implemented. If you use CombinatorialFreeModule instead, it will work. This second version of free modules requires you to specify a basis.
sage: M = CombinatorialFreeModule(ZZ, ('a', 'b', 'c'))

(The symbol # is used to denoted the tensor product.)