Here is the definitive list:

If you have a Pokémon with the ability (such as Meowth or Teddiursa) in your party, they have a small chance of finding a Heart Scale after a battle, provided they aren't already holding an item. The chances generally increase as the Pokémon's level rises. Summary Table: Heart Scale Quick Guide Location / Method Primary Use Exchange with Move Re-learner for forgotten moves Move Re-learner Location Sailport Town Wild Pokémon Source Angling and Angelish (50% hold rate) Best Farming Strategy Frisk Ability + Thief move