I think it is safe to say that ROS adds a lot of value to many robotics applications, but it definitely isn't appropriate for every robotics application
In fact, the ROS website has a series of pages that address that very point. These pages explain
The single major disadvantage with ROS is actually the time that it takes to learn ROS. It is not an easy learning-curve for people new to robotics, and it can take a long time before you are able to enjoy the benefits.
That said, there are now rather more "accessible" texts on ROS available on the market. For example, A Gentle Introduction to ROS and ROS Robotics By Example. These can make that learning-curve a little less daunting.
In your specific case, where you are looking at coding for a basic navigation problem for a differential drive robot using an Arduino, it is unlikely that ROS would be appropriate. It isn't possible to run ROS on an Arduino (although it is perfectly possible to run ROS on a Raspberry Pi).