but I'm wondering, what are the reasons or criteria that can make all friends in this forum willing to give merits to someone?

The only thing I would like to add to what has been said is that they are called "merits" for a reason. In theory you should give them to someone because you believe that what that person has written has merit.
But as pooya87 says everyone does their own thing. There are times when merits are given not so much because people believe that what the other has written has merit, but simply because they agree with what he/she says, without the post merited expressing any profound idea, nor has it taken much effort to write it.
The thing is that now you already have some smerits to send, so you can start practicing, while you keep on noticing how others give merits.