Is this data duplication when two exact pieces of data have different lifespans?
Normalization rules are a useful guideline, not a strict law.

Even if you don't anticipate the currency field in the payments table to ever be different than the currency field for the related bank_account, I can think of any number of reasons to keep both:


What if the account record is ever deleted? (Accidentally or deliberately)
What if the account record changes currency type? 
The field could be used as a point of immediate validation before committing the payment
The field could be used after the fact as an integrity/validation audit
It could improve performance for certain queries instead of requiring a join to the bank_accounts table.