What is von Neumann bottleneck? According to this Quora post, 


  It refers to two things: A systems bottleneck, in that the bandwidth
  between Central Processing Units and Random-Access Memory is much
  lower than the speed at which a typical CPU can process data
  internally. The 'intellectual bottleneck' in that programmers at the
  time spent a lot of time thinking about code optimisation to stop
  'lots of words' being pushed back and forth between CPU and RAM.


But according to my class lecture, it is the problem that "Generic implementation of single, common instruction and data hierarchy makes it impossible to access data and instructions at the same time. This is traditionally called von Neumann bottleneck."

Which one is correct?
Both are correct, though I'd say the first one more so.

A von Neumann architecture means the program is stored in memory along with everything else, rather than being a separate unit attached to the processor. This means that anything the computer tries to do, no matter what it might be, is bottlenecked by the connection between the processor and memory.

So "getting data from memory is slower than processing it" is a valid description, as is "you need to fetch instructions and you need to fetch data and both of those are slow". But the most important part is that fetching from memory is extremely slow compared to anything else the processor might be doing.