I think the objectives may be different. The way I've thought of it, which may not always be the case, random linear network coding is a better way of transferring packets through a network, than by using traditional routing methods. With random linear coding, a single packet on a single link is used for multiple A to B connections at the same time. The conversations are then separated again close to the destination nodes. So this sort of coding maximizes the use of network bandwidth.
Fountain codes are instead forward error correction codes which require very low overhead, compared with other FEC, and also low computational complexity. And they can even be implemented at the application layer, so different network client systems can use these without any impact on the infrastructure nodes.
Or are you asking about the special case of using random linear network coding to accomplish forward error correction? In that case, if a given packet has been corrupted in transmission, the random linear network scheme will have to wait until a subsequent uncorrupted packet has been received, before it can correct the older packet. And the complexity issue then becomes the major issue, with fountain codes being simpler.