Aunque ambos términos hagan referencia a un mismo objeto, no es lo mismo definir una variable que declarar una variable. No es algo a lo que debamos prestarle mucha importancia, pero siempre es mejor hacer un uso correcto de los términos que existen para poder expresarnos con mayor exactitud.
Por un lado nos encontramos con el concepto de definición. Definir una variable consiste en reservar un espacio de la memoria para poder almacenar datos en él. Así, si yo quiero almacenar un valor entero en la memoria, deberé definir una variable de tipo int para reservar 4 bytes en la memoria.

Por otro lado, la declaración difiere un poco en cuanto a la definición. Declarar una variable consiste en asignar un nombre de identificación a una variable. Si hay un espacio en memoria reservado para un valor entero pero no se dispone de un identificador con el que acceder a esa dirección de memoria, de nada servirá la definición. En este punto observamos que al declarar no se reserva espacio en memoria, pues de esta tarea se ocupa la definición. Por tanto, podemos declarar varias veces una misma variable sin tener que definirla más de una vez.
Por último, es importante saber que para declarar una variable previamente hay que definirla. Al definir una variable le decimos al compilador el espacio en memoria que se necesita reservar. Al fin y al cabo no podemos identificar un espacio de la memoria si este no ha sido definido.
Para seguir aprendiendo…
Gadget-info: Diferencia entre definición y declaración
It-swarm-es: Las diferencias entre inicializar, definir, declarar una variable
StudentPlace: Fundamentos de Programación: Variables y sus reglas