This is a very oversimplified explanation.
NOR Flash: Expensive, low to medium capacity, very slow write times, very slow erase times, fast read times, and the ability to read 8 or 16 bits at a time. Reading 8/16 bits at a time is important so that you can execute code, as in boot code.
NAND Flash: Inexpensive, medium to high capacity, fast write times, fast erase times, fast read times, but cannot access individual bytes directly. Reads and writes are done by the block. Block size varies from device to device (256, 512 1024, etc bytes). You can't use this to boot your system. When the processor wakes up it goes to the same address every time to read it's first instruction (8, 16, 32, 64 bit opcode), then it goes to address+1 to read the next instruction. With NAND the processor would have to know that it's first read was a block read, otherwise it would not be able to execute your boot code in the order it was meant to be executed.
ONENAND Flash: This is NAND flash with a NOR Flash interface. It contains a buffer or two and will read a block of NAND flash into the buffer so when the processor wants to read a byte at a time the buffer will present it as such. I don't know the price point for this device (that's what I'm searching for).
?????? Flash: This is a competitor to ONENAND Flash. I don't know anything about it. It may have already died off.