I'm trying to learn a bit more about the different types of attacks but as far as I understand it, a rainbow table is a large collection of prehashed data which is then compared to hashed data gathered from a target. A dictionary seems very similar but I'm struggling to find anything that can specify the differences between the two, if there are any.
In a rainbow table attack, the tables contain already pre-computed hashes of commonly used passwords. You compare the hash directly to the hash in rainbow table so it's faster than using a dictionary where you compute a hash of the word and then compare it to the password hash. If a salt is used in the hash, a dictionary attack would be better than computing a rainbow table before cracking.
I must add that what I wrote is for Hash tables and Rainbow tables are more complex than Hash tables, but the general idea is the same.