Do SQL Servers in a cluster need to have the same memory? I have two servers in always on failover configuration with windows clustering underneath.

Do both servers need to have the same memory?
One of our DBs that uses a lot of memory is not in the AG, so ideally I don't want to give the secondary server the same memory as the primary because - it will never need to run the big DB.
There's no functional requirement for servers in a cluster to have the exact same specs (memory, CPU, etc).  So you can definitely set it up this way.

To some extent, you've answered your own question.  To put it differently - if one of the servers in the cluster will never be running the same workload as the other, you should tune that server appropriately for its workload.  It would be a waste of resources to do otherwise.