It grabs a results set and brings the data client side, then typically disconnects from the server immediately resulting in greater performance and scalability.
Similarly if your requirements require a snapshot of the data, and don't need a window into real-time updates, use ADO.
If it's lengthy, look carefully at your cursor logic; see if you can remove columns from the declare statement, and change your where clause in the declare statement to only return rows the cursor needs.
If the fetch statements themselves are lengthy or consuming too much IO or CPU, look at the cursor declare statement and ensure you have optimal indexes in place on your base tables or temporary tables.
For example, an operation is sometimes best done client side rather than server side.