Iago expresses his complaints about Cassio in act 1, scene 1 as part of his explanation of why he is so angry with Othello. Iago believes that he has been mistreated in being appointed only as Othello's "ancient," a lesser position than that accorded to Cassio. Iago is enraged by this for two key reasons.
First of all, Iago notes that Cassio is a Florentine. This is important because it makes him a foreigner, as Othello is. Iago himself is a native Venetian. It is entirely possible that Iago feels Othello is more well-disposed towards other foreigners because he is one.
Secondly, Iago complains that Cassio is not a proper soldier, but merely an "arithmetician," or a theoretical strategist. He has never actually "set a squadron in the field," or led a group of men into war. Iago, on the contrary, has done this many times and is an experienced soldier. He cannot understand why a man such as Cassio should have been chosen in his stead when he is so inexperienced by comparison to Iago. Indeed, he declares that Cassio knows nothing more about the actual logistics of battle and warfare than a spinster, suggesting everything he knows he has learned from books, so he has no practical qualifications for the job to which he has been appointed instead of Iago.