Let $A$ be square. This question is a bit opinion-based unless there is a technical answer. I think it is helpful tho. Also, this question is closely related to this question : quick way to check if a matrix is diagonalizable.
Based on the answers, there is no known way to determine diagonalizability as a map $A \mapsto$ $\{$True, False$\}$. (see also note)
This doesn't happen for invertibility (determinant measures that) or over reals/complex numbers, the existence of perpendicular diagonalization/ unitarily diagonalizable using $A = A^{T}$ or $A^*A = AA^*$ conditions.
My question is is there a reason why there is no known way to check diagonalizability in general? I guess people must have tried, although possibly a very hard task. But considering determinant is also a really complicated function, yet motivatable why the above map have never been found explicitly$?$
Note: A simple answer would be it's too hard, but a better answer would be what makes it a hard task. Like, is the theory of that map really not that connected to anything we know?
Note: I chose this formalism of map $A\mapsto\{0,1\}$ basically because I thought the term 'algebraic way' to determine is ambiguous. I was looking for an explicitly writable function as a code in $A$ (i.e. finite, and requiring only computation but not conditional arguments).
Note: Some conditional arguments in some algorithms can be written as a computation (if $x>0$: return $x$ else return $0$ could be explicitly written as max($0,x$) but if algebraic multiplicity $>1$ is not possible explicitly). I admit it is rather hard to formalize, but it is enough to check if there is a polynomial or continuous function in $A$ when equal to $0$ determines diagonalizability.