To quote Wikipedia:
In cryptography, a memory hard function (MHF) is a function that costs significant amount of memory to evaluate. It is different from memory bound functions, the latter incurs cost by slowing down computation through memory latency. MHFs find their use as a form of proof-of-work.
In other words, Memory-Hard Functions require a specific amount of memory to evaluate them. Memory-Bound Functions do not specifically require a certain amount of memory, but their computational speed is dependent primarily on the memory available, in contrast to Compute-Bound Functions, where the computational speed is dependent on how fast you can calculate.
Does it mean that we have two different memory-based techniques?
Not really. Memory-Hard is a more desirable property when it comes to cryptography than Memory-Bound.
Why go for Memory-Hard Functions in the first place?
The reason for this being is that for any given algorithm, given a motivated enough actor, they can build a specialized ASIC that computes this algorithm fast and efficiently, in comparison to a CPU or a GPU. Memory, however, scales rather poorly still. Having an 8 GB large cache for an ASIC to ensure maximum performance is still not feasible, but the calculations can still be done on off-the-shelf hardware.
In the best possible case, you want an attacker with specialized, purpose-built hardware to have as little advantage over an off-the-shelf computer as possible. In other words, the only way for an attacker to attack you "faster" is to spend more money, not to spend the money "smarter".