La regla general es: si conoces la forma y estructura del contenido que va a cargar, usa un skeleton loader. Reduce la sensación de espera y evita el "layout shift" (que la página salte cuando el contenido aparece). Es ideal para listas de tarjetas, perfiles de usuario, etc.
Si la carga es muy rápida o el resultado es una acción (no un contenido), como al enviar un formulario, un spinner es mejor. Un skeleton que aparece y desaparece en medio segundo es más molesto que útil.