Generally we prefer the former, its more explicit and de-couples the target table from the view. This has management advantages e.g. you can drop the MV without dropping the target table. Additionally, querying the de-coupled target table ensures all optimizations are used - historically (need to test if case still) the latter implicit approach wouldn't use some.
Generally go explicit, create the target table first.