When a mesh changes its number of vertices during the animation, Blender rebuilds the DerivedMesh, after which the materials weren't applied any more (causing the default to the first material slot).
When a mesh changes its number of vertices during the animation, Blender rebuilds the DerivedMesh, after which the materials weren't applied any more (causing the default to the first material slot).