The first thing that comes to mind is that there are a few significant differences between the queries Discover uses and the _count queries you showed. The _count queries just count all documents within the index regardless of their timestamp while the Discover query filters by the date range selected in the time picker. That means that if the index fsimage-2017.10.03 includes documents that have no timestamp or whose timestamp is not on that day, they will be counted in the _count query, but not in the Discover query that uses the timefilter for the day 2017-10-03.
To check what the range of timestamp values in an index is, you could use something like the following (with the timestamp field name replaced):
GET fsimage-2017.10.03/_search
{ "aggs": { "timestamp_stats": { "stats": { "field": "@timestamp" } } }, "size": 0 }
To get the number of documents that have the timestamp field:
GET fsimage-2017.10.03/_count
{ "query": { "exists": { "field": "@timestamp" } } }
The request that Kibana sends to Elasticsearch can be inspected using the small arrow icon beneath the histogram at the top.