They still do generate at the surface, or rather, just below, but sand and gravel no longer collapses during world generation, a change made several versions ago (1.13?) to make caves more dangerous (e.g. place a torch and the ground caves in. Back in e.g. 1.6.4 this also happened but was much less common. In particular, the 1.6.4 dungeon generation code sets the "block notify" flag when clearing out a space, while e.g. lakes do not, so sand could be found floating above lakes).
Otherwise, I can't see any reason for them not to generate below the surface anymore; if the Wiki is still correct they generate the same way as they always have; the game chooses a random coordinate between y=0 and the height limit (prior to 1.7 this was y=128, making them more common) when deciding where to place a dungeon and it will generate as long as the floor and ceiling are entirely solid and there are 1-5 2 block high openings along the sides (any dungeons with holes in the floor or ceiling are due to post-generation changes, as well as the fact that dungeons will delete the floor if it is only one block thick). Also, they do not generate just in mineshafts; you can even rarely find them in the sides of mountains, as long as the aforementioned criteria are met.
They are rather common in 'Badlands" biomes because the mineshafts there are quite often right up on the surface. In my current world I collected 2 stacks or rails and 3 minecarts without mining a block and also came across 2 spider spawners.