I'm confused why, if all eigenvalues of a linear system are real and positive, this entails an unstable system. For example, if eigenvalues are between 0 and 1, surely this means the system is gradually shrinking? And even more so, doesn't an eigenvalue of 1 mean the system is "staying put"? Why is a negative eigenvalue instead related to stability?
I'm confused because in the case of eigenvalues of a Markov matrix, it seemed an eigenvalue of 1 meant stability, and 0 < λ < 1 meant it was shrinking. But in both those cases the eigenvalue is positive.
The key difference lies in the fact that the maps defined by a Markov matrix are discrete-time whereas the dynamical systems you refer to are continuous-time systems. In either case, a "location" on the system is stable or unstable depending on whether or not a perturbation off of the location grows or shrinks, which is measured differently in each system.
For a continuously differentiable dynamical system, a local perturbation around the evolution of the system near a fixed point is described by an exponential $e^{\lambda t}$ since (taking liberal approximations) $x(t+\Delta t) \approx x(t) + \lambda x(t) = (1 + \lambda)x(t)$; the function grows if $\lambda > 0$ and shrinks if the opposite.
For a discrete-time system like a Markov chain, local perturbations grow depending on whether or not the "next" step of the system is larger than the previous one, a.k.a. if $x_{n+1} = \lambda x_{n} > x_n$. Hence, $\lambda > 1$ indicates an unstable fixed point.