¡Hola! En mi opinión, "dudar" es el más neutro de los tres verbos: no tiene connotación y me parece más genérico.
"Vacilar", como "titubear", expresa algo más de inseguridad en quien "vacila" o "titubea" que en la duda en sí, y lo veo más adecuado cuando alguien duda al iniciar una acción que para quien tiene una duda, digamos, intelectual: "vaciló/titubeó un instante al subir al autobús y estuvo a punto de perderlo". En cambio yo no diría nunca, por ejemplo,"*vacilaba/*titubeaba entre el vestido blanco y el negro", sino "dudaba". Además se presta a ciertos malentendidos (en español de mi región, "vacilar a alguien" es burlarse de él).
Y "titubear" me resulta menos frecuente y emparentado con "tartamudear".
Sólo es mi versión, recuerden que el español varía mucho entre unas regiones y otras y puede que otros hablantes expresen sus dudas de otra manera ;-)
De todas formas, en español coloquial "dudar" no se emplea tanto como sus equivalentes en francés e inglés y para ese registro serían preferibles expresiones como "no lo tenía claro", "no sabía cuál elegir" y similares.