find command just hangs on /dev/fd/*
Find has not randomly stopped working, but is functioning as it should. The problem is that you're running a command that you do not fully understand. It sounds likely that you do not at all want to have find looking through your /dev directory.

The reason you get different results with find and ls is that the /dev/fd directory does not represent a physical directory on disk. Instead it is a virtual file system that contains the file descriptors that the process looking at /dev/fd have obtained.

This means that ls sees one /dev/fd while find sees another (and similar for all other running processes).

In essence you want to take a look at your find command and make sure it is constructed correctly for the task you want to perform. If you want to ask about that on SO, please remember to include the full command you're trying to run as well as what you're expecting that command to do for you.