You can refund fulfilled orders, it's the same process. I wonder if you're unable to because the order is too old or something.
When you cancel an order, it will prompt you to refund.
You can test stuff like this out by creating a test order (Draft Order) then playing around with.
That's strange, sounds like an issue unique to your store. In that case I would contact Shopify support to see why you aren't able to refund orders like normal.