Each move tutor can teach each move an unlimited number of times. However, there is usually an initial cost that must be paid for each move so that the tutor can teach it for the first time. Once the cost is paid, it does not need to be paid again for subsequent teachings of the same move.
The cost will either be a monetary cost, or a cost in shard items.