This is based on a feature called TailTrimming parameter. TailTrimming determines when the usage analytics reports should be updated. By default, the reports are updated when the item is updated at least 3 times within the last 24 hours. This is designed to balance the load usage of your SharePoint system, as low usage items aren't getting new reports as frequently as commonly accesses items.
However, the value you see with the page's popup is not based on the TailTrimming affected property. The number of views you see in the page's pop-up window is based on the property ViewsLifeTime
which is updated by SharePoint Usage Analytics every 15 days.
As a bottomline we can conclude, that the view counts are intended to work like this. In the last hand, you should rely on the reports, but understand that they also have a range of 0-2 accuracy when your default TailTrimming property value is used. If this is a business crucial value to track, you can change the default value with the following PowerShell:
$SSP = Get-SPEnterpriseSearchServiceApplicationProxy
$tenantConfig = $SSP.GetAnalyticsTenantConfiguration([Guid]::Empty)
$event = $tenantConfig.EventTypeDefinitions | where-object { $_.EventTypeId -eq <EventTypeId> }
$event.TailTrimming = <TailTrimming>
$tenantConfig.Update($SSP)
Where is the numeric EventTypeId of the usage event that you want to change, and is the minimum amount of times the usage event has to occur within 24 hours for the usage analytics reports to be updated.
References: