Perché ciò che ti ritorna una query non è un array, è un record set, fetch_assoc() non lavora su array.
L'array $result lo devi scorrere con foreach() e ad ogni iterazione usare while e fetch_assoc(), perché ogni entry dell'array contiene un record set.