Users (Including system administrators) cannot change the status of some tasks or issues.
There are two possible solutions to this issue:
1. The task has children tasks that will not allow its parent to change as long as the child tasks are still open.
2. The task/issue has a resolving object which would prohibit its ability to be changed. The resolving object can be seen by editing the issue/task. The field is usually at the bottom of the Overview section of the object.