The key difference is that statements inside a process are executed sequentially, while statements outside a process (concurrent statements) are executed concurrently.
For the code snippets shown:
Left (inside process):
A will be assigned the value of C, because the assignments are executed sequentially - A is assigned B, then reassigned to C.
Right (outside process):
A will take on the value of both B and C concurrently, because the assignments are concurrent statements executed in parallel. This would result in a synthesis error.
So in summary, inside a process the statements are executed sequentially in the order written. Outside a process, statements execute concurrently and potentially cause conflicts.