Hello Alexandre Caron,
Thank you for reaching out to Microsoft Support!
After testing, it turns out, as you stated, that when the $count argument is used on the sites endpoints, the value of @odata.count is always equal to $top or the number of sites returned, not the total number of sites, which does not match the other endpoints. As Vasil Michev said, for the $count parameter, each endpoint has its own implementation, which is not consistent, and some endpoints do not even support the query parameter.
Therefore, you are better off counting the site on the client side. At the same time you can here the function of the parameters of the endpoint $count feedback.
Hope this helps.
If the answer is helpful, please click Accept Answer and kindly upvote it. If you have any further questions about this answer, please click Comment.