actually shockwave is a hybrid of vector and bitmap and can do both. It has a massively more powerfull scripting language and can almost be called a programming language (almost). Flash files can be imbedded into shockwave files to get the nice vector features of flash with the power of shockwave. Shockwave can produce much more impressive effects but you generally pay for this in file size.
Flash is the best option of basic buttons, interfaces and basic games but if you want to create dynamic games (yes you can make games with flash but nothing near as cool as you can with shockwave) or multiuser environments shockwave is the way to go.
Other cool thing about shockwave is you can manipulate bitmaps directly with code, including the shape of vectors.
All that said 95% of people are better off with Flash, its is a very cool package and with version 5 finally has a semi decent programming environment. Unless you want to really get stuck into ligo programming the power of shockwave wont ever get touched.