According to nLab:
https://ncatlab.org/nlab/show/morphism
In a general category, a morphism is an arrow between two objects.
https://ncatlab.org/nlab/show/functor
A functor is what goes between categories.
Basically, I observe these are the reason people (including here) claims "morphism and functor are different."
However, in single-sorted definition of a category,
https://ncatlab.org/nlab/show/single-sorted+definition+of+a+category
The basic idea is that an object can be identified with its identity morphism.
This concept/definition is described in Categories for the Working Mathematician I.1 and XII.5.
So, in this scheme, when one claims
"a morphism is an arrow between two objects.",
which is equivalent to claim
"a morphism is an arrow between two categories."
since an object is identified with the identity morphism that is also a category(singleton).
So,
morphism: an arrow between two categories
functor: what goes between categories
and here, "what" means morphism
because
defining a category which uses only one collection (representing the collection of morphisms)
Accordingly, morphism == functor, and usually we use the identical concept in different words everywhere (mostly with many confusions).
Some would say, "but, the scale of the perspective is different". Yes, I know, but I usually read explanations functor is somewhat special concept other than morphism, and never heard the difference is only perspective and relative.
Please tell me if there is any mistake. Thanks.
EDIT
According to nLab article:
https://ncatlab.org/nlab/show/functor
Definition
External definition
A functor $F$ from a category $C$ to a category $D$ is a map sending each object $x \in C$ to an object $F(x) \in D$ and each morphism $f : x \to y$ in $C$ to morphism $F(f) : F(x) \to F(y)$ in $D$, such that
$F$ preserves composition: $F(g\circ f) = F(g)\circ F(f)$ whenever the left-hand side is well-defined,
$F$ preserves identity morphisms: for each object $x \in C$, $F(1_x) = 1_{F(x)}$.
So, functor is often called "structure preserving".
However, there is an interesting article:
https://www.schoolofhaskell.com/user/edwardk/snippets/fmap
The free theorem for fmap
When we write down the definition of Functor we carefully state two laws:
fmap id = idfmap f . fmap g = fmap (f . g)
These are pretty well known in the Haskell community.
What is less well known is that the second actually follows from the first and parametricity, so you only need to sit down and prove one Functor law when you go to supply a Functor!
This is a “folklore” result, which I've used in conversation many times before, but it continues to surprise folks, so I decided to write up a slow, step by step proof of this result as it is a fun little exercise in equational reasoning.
To prove this we're going to need the free theorem for fmap and a few lemmas.
In the category of sets, we call the morphisms "functions".
In the category of vector spaces over a given field, we call the morphisms "linear transformations".
In the category of groups, we call the morphisms "homomorphisms".
In the category of categories (which if I recall correctly isn't actually a thing), we would call the morphsims "functors". We do have things like the category of small categories, however. And in that case, the morphisms are really called "functors".
Functors are morphisms between categories, but there are too many of them to put all of them into a single category.