Some merchant accounts restrict refunds to one per cardholder per day. If you want to refund a single customer for purchases on two separate invoices, you may have to do one on one day and wait until the next day to do the next one. This is especially the case when a customer makes one payment against multiple invoices like a statement of account.
Also, merchant accounts have a limit on how long after the transaction they will allow a refund to occur. Most merchant accounts restrict this to 120 days after the original transaction and no later. Some merchants allow longer, others shorter.
If you're trying to process multiple refunds, some payment gateways restrict this to only one per invoice. You'll need to go into their payment configuration settings and update this to allow for multiple refunds towards the same invoice.
Another reason would be due to a credit being given on the original invoice item. This happens whenever you try to process a refund from a class that's been transferred out of. Here's a link to a support article that goes into more detail about this situation:
Essentially, once a transfer has been performed, there's not a direct method to process the refund. Steps listed in the article will explain what to do in these situations.