Rey interacts with BB-8 vocally many times and appears to understand very complex topics within the language Droid Binary - such as the names of planets, coordinates, and short explanations about BB-8's mission secrecy.
It appears that Rey, who appears to have been living as a scavenger since her childhood, understands Binary.
Is there any in-universe (movie, novel, Disney accepted canon) explanation that would show when/where/why she learned this skill?
It isn't a widely known skill - Luke had C3PO translate for most of his earlier interactions, and then much of the communications between R2 and him occur in a cockpit with a display, though it's obvious he was able to pick up on the tone of the conversations R2 had and perhaps understand a little. Luke grew up on a desert planet with moisture evaporators and droids, but he obviously didn't understand the language at that time.
It seems like an odd thing for a young woman to have picked up on a planet where droids were apparently uncommon enough that they were routinely disassembled for parts and sold.