Nick here from Shopify.
So going forward you're going to have to account for those orders that note that status now. If you cancel and order or refund it in future, make sure to hit fulfill before doing so to change the status. Once cancelled it will then keep the fulfilled status. If you do not hit the fulfill button on an order, then it is unfulfilled. As such, the behaviour you are seeing is expected, as the order is not fulfilled, and it never will be as you cancelled it before hitting fulfill.
Hope this helps.
One work around you can do:
-Open the 'Unfulfilled' tab
-Add a filter 'Status is open'
-Click 'Save this search' and give a name for this new tab
That will filter out cancelled and archived orders. As long as you archive refunded orders, those will be hidden.
If you need are more comprehensive solution, feel free to try my app Better Reports.
It can show you:
-Orders pending fulfillment
-Line items pending fulfillment
-The total quantity pending fulfilment for each variant, aggregated from all pending orders.
The work around that Clement suggested would not work for me or many others that use an API to connect orders to fulfillment centers. They look at "Unfulfilled" orders and fulfill them. I'll have to pay for customer development to make an exception for a dozen orders that I did not know to click "Fulfill" when canceling the order when I first opened my shop.
This is sloppy not to allow these to be removed from "Unfulfilled". There should be a "Fulfillment status" of "Canceled" or the fact that the order was not shipped on a canceled item is in a way "fulfilling" the promise and the order should be automatically moved to fulfilled.