Scrypt depends more on being a "Memory-Hard algorithm" as seen under section 2 here.
PBKDF2 relies more on increasing CPU requirements by adding iterations.
A good high level explanation of how KDFs like bcrypt/scrypt work is seen herehere. Also check out this explanation for a little more detail.