An Arduino has limited memory, especially little RAM where it stores variables (and that's where your words will go, unless you take measures that tells the compiler to store it in flash, such as the F() macro).
A standard Arduino has 32k of flash, 2k RAM. 300 words of average 6 characters = 1800 bytes, eating up most of your RAM.
If you can store it in flash, you may dedicate 16 kB for this. At an average of 6 characters you could store some 2700 words (6 characters plus null terminator).
Get a Mega (wth ATmega2560 processor) you get 256 kB or flash - 240 kB would store just over 35k 6-character words.
You need only 5 bits per letter so if you store them smartly you need 35 bits or just over 4 bytes for a 6-character word including a 5-bit null. Your 240 kB would now store 56k 6-letter words.
But that'd be it for just a Mega. For any more, go for external memory such as an SD card and your storage is virtually unlimited (you can store several complete dictionaries on one MicroSD).