Google warns, that the number of urls displayed by site-query is not reliable.
In some cases it seems to be reliable. Google maintains a big amount of data centers, where the indexing database should be mirrored. But it is not always a case. Google has its own queue of data, which should be mirrored first. The number of indexed urls has not the first prio.
Even the number of indexed urls in your search console is not 100% reliable - well, it is, but it has delays too.
The main cause for unreliability of these data is the lack of 100% real time mirroring of all data Google has. But we can't expect this from Google too.
The only art to be sure about the number of indexed urls is to scrape SERPs by your own, with iMacro or the like. For some critical projects with not so much urls it is the best method for me - iMacro with a kind of Windows automation to start a browser and run iMacro.
site:
query doesn't report the number of indexed page. Google only reports the number of indexed pages through Google Search Console. Google purposefully makessite:
queries less useful by introducing weird orderings and limiting the number of results to make it harder to figure out their algorithms.