Who is responsible for writing Use Cases?
The person whose role it is to perform the business analysis. So the person that wears the business analysts hat at the time. That could be the project manager, a dedicated business analyst or the lead developer, it depends on the team...
Someone who
Communicates clearly.
Understands the business value. This means either business knowledge or good interviewing skills.
Can understand who the actors are, and what interactions with a system will create that business value. This means some technology vision to see how interaction can create value. Not everyone is capable of this vision. Some people repeat the way things used to be. Other people write hypothetical ("would be nice if...") statements. There's middle ground of definite and visionary.
Job title and organization don't matter. What matters is clarity, understanding and articulating a vision.